快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

SELECT查询的应用(一)

比如我们要从很多文章的标题中找到所有包含"MySQL"这个字眼的文章。这就应该在 WHERE 子句中用到 "LIKE",就是模糊查询。
  首先交待一下SQL语言中的统配符,统配符就是用一个字符统一匹配任何字符,SQL中,一个字符"_"匹配单个的任何字符;一个字符"%"匹配任何零个到多个字符。举例来说,"A_" 可以匹配诸如 "AA"、"AB"、"A2"、"A$"……等等;而 "A%" 可以匹配 "ABCD"、"A"、"AG$Bng0"、"An apple is just an apple."……等等。
  怎么用呢?还是举个实际的例子:工厂仓库里的东东,很多、很杂,要分成几大类来治理:比如A类代表机配件,B类代表工具,C类代表包装材料……等等,每一类下面的东东再分别编号,如"A0001"、"A1065"、"B1014"等。在治理这个数据库的时候,编号作为一个字段,这个字段不仅作为该物品的代号,同时也表明了它的类别。当你要查询所有的工具时,可以这样:

SELECT * FROM goods WHERE code LIKE \\\'B%\\\' ORDER BY code\\\'

这样就是查询code这个字段(就是编号)为字母B打头的所有记录。注重这里\\\'B%\\\'表示字母B是出现在字段的开头,与下一个例子不同:查找文章标题中含有"MySQL"这个字眼的所有文章,因为要查找的目标"MySQL"不一定出现在文章标题的什么位置上,所以应该:

SELECT * FROM articles WHERE title LIKE \\\'%MySQL%\\\'

\\\'%MySQL%\\\'的意思是"MySQL"这个字眼出现在标题中,它的前面可能有文字,后面也可能有文字。
  既然查"MySQL"可以,查别的字眼未尝不可以。可以让浏览者自己输入他要搜索的要害字,就是这样:

<!--input.php:-->
<form method="get" action="search.php">
要害字:<input type="text" size=10 name="key"> <input type="submit" value="查询">
</form>

<!--search.php:-->
<?
...
$query="select * from article where title like \\\'%$key%\\\'";
$result=$mysql_query($query,$db);
...
?>

  注重在使用模糊查询时,有一种情况应该小心,就是当一个字段是类似 \\\'2,13,25,33\\\' 这样的值时,若要查询它其中是否包含\\\'2\\\'这一项,就不能简朴的用 \\\'%2%\\\' 来查询。因为假如这样,一个这样的值也会被查询到:\\\'1,6,21,27\\\'。这并不是我们所希望的。所以在处理这样的问题时,应该将该字段存为 \\\'.2.13.25.33.\\\' 的形式。这样当需要查询包含\\\'2\\\'这一项的记录,就可以放心的用 \\\'%.2.%\\\' 了。
返回类别: 教程
上一教程: 在SQL SERVER 2005中查询表结构及索引
下一教程: MYSQL使用指南(下)

您可以阅读与"SELECT查询的应用(一)"相关的教程:
· SELECT查询的应用(三)
· SELECT查询的应用(二)
· SQL SERVER在JAVA中的应用
· SQL自定义函数的应用
· SQL SERVER中时间查询的一个比较快的语句
    微笑服务 优质保证 索取样品