鉴于大家对asp十分关注,我们编辑小组在此为大家搜集整理了“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 ''%%苹果%%''
必须是“%”,而且要两个。大家多注意。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在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
特殊字符 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
///////////////////////////////////////////////////////////
帮助都这么写了,没有任何问题啊,到底问题是出在哪里呢?更加让本人迷惑。后来问了一下同事说:你的SQL语句错了,通配符应该用%,而不是*。可是帮助里面说的是*,而且我在Access中试验一切正常,同事也说不上个所以然来,于是继续查找帮助需求答案。在另一个帮助文件中找到了如下信息:
///////////////////////////////////////////////////////////
内置的模式匹配方法提供了一个用于字符串比较的通用工具。下表中展示了可以用于 Like 运算符的通配符,以及与它们匹配的数字和字符串。
pattern 中的字符expression 中的匹配项
? 或 _(下划线) 任何单个字符
* 或 % 零个或多个字符
# 任何单个数字 (0— 9)
[charlist] 在 charlist 中的任何单个字符。
[!charlist] 不在 charlist 中的任何单个字符。
可以使用一组由中括号 ([]) 括住的一个或多个字符(charlist)来匹配在 expression 中的任何单个字符,并且 charlist 可以包含大部分 ANSI 字符集中的字符,包括数字在内。可以通过将特定字符如左方括号 ([)、问号 (?)、数字号 (#) 和星号 (*) 包含于