SQL查询语句通配符与ACCESS模糊查询like的解决方法

ACCESS的通配符和SQL SERVER的通配符比较
===================================================
ACCESS库的通配符为:
  与任何个数的字符匹配
  与任何单个字母的字符匹配

SQL Server中的通配符为:
% 与任何个数的字符匹配
_ 与单个字符匹配
正文
我今天在写个页面的时候,也很郁闷,表中明明有记录,但在ASP里就是搜索不到,理论的sql语句如下:
Select * FROM t_food Where t_food.name like '*苹果*'
去GOOGLE搜搜发现,ASP中模糊查询要这样写:
Select * FROM t_food Where t_food.name like '%%苹果%%'

必须是“%”,而且要两个。大家多注意。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SQL查询语句通配符问题

在Access中用SQL语句进行数据查询时,用了通配符*进行查询。语句如下:

Select * from normal where bookname like '*h*'

在Access的SQL视图中试验没有任何问题,工作一切正常。于是将SQL语句写入到C#程序中,结果一到查询语句时就出错跳出,百思不得其解。于是查找Access帮助文件,找到如下帮助:

////////////////////////////////////////////////////////////

将字符串表达式与 SQL 表达式中的模式进行比较。

语法
expression Like "pattern"

Like 运算符语法包含以下部分:

部分说明
expression 在 Where 子句中使用的 SQL 表达式。
pattern 与 expression 进行比较的字符串文字。


说明
可以通过 Like 运算符来查找与所指定的模式相匹配的字段值。对于 pattern,可以指定完整的值(例如 Like "Smith"),也可以使用通配符来查找某个范围内的值(例如 Like "Sm*")。

在表达式中,可以使用 Like 运算符来比较字段值与字符串。例如,如果在 SQL 查询中输入 Like "C*",那么该查询将返回所有以字母 C 开头的字段值。在参数查询中,可以提示用户键入要搜索的模式。

下面的示例返回以字母 P 开头并且后面为 A 到 F 之间任何字母以及三个数字的数据:

Like "P[A-F]###"

下表展示了如何通过 Like 来测试不同模式的表达式。


匹配类型
模式匹配
(返回 True)不匹配
(返回 False)
多个字符 a*a aa, aBa, aBBBa aBC
   *ab* abc, AABB, Xab aZb, bac
特殊字符 a
a a*a aaa
多个字符 ab* abcdefg, abc cab, aab
单个字符 a?a aaa, a3a, aBa aBBBa
单个数字 a#a a0a, a1a, a2a aaa, a10a
字符范围 [a-z] f, p, j 2, &
范围之外 [!a-z] 9, &, % b, a
非数字值 [!0-9] A, a, &, ~ 0, 1, 9
复合值 a[!b-m]# An9, az0, a99 abc, aj0


参考地址:http://office.microsoft.com/zh-cn/assistance/HP010322532052.aspx

///////////////////////////////////////////////////////////

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2368.html