当页面有搜索的时候,少不了要使用到模糊查询。
LIKE 的语法如下:
SELECT "栏位名"
FROM "表格名"
WHERE "栏位名" LIKE {套式}
{套式} 经常包括野卡 (wildcard). 以下是几个例子:
- 'A_Z': 所有以 'A' 起头,另一个任何值的字原,且以 'Z' 为结尾的字串。 'ABZ' 和 'A2Z' 都符合这一个模式,而 'AKKZ' 并不符合 (因为在 A 和 Z 之间有两个字原,而不是一个字原)。
- 'ABC%': 所有以 'ABC' 起头的字串。举例来说,'ABCD' 和 'ABCABC' 都符合这个套式。
- '%XYZ': 所有以 'XYZ' 结尾的字串。举例来说,'WXYZ' 和 'ZZXYZ' 都符合这个套式。
- '%AN%': 所有含有 'AN' 这个套式的字串。举例来说, 'LOS ANGELES' 和 'SAN FRANCISCO' 都符合这个套式。
今天在构造SQL查询语句的时候,一直提示语法错误,下次要记住了:
使用like的时候,SELECT *
FROM Store_Information
WHERE store_name LIKE '%AN%' 注意: 要加单引号,否则,语法会出错滴...还有一个问题,当like组合查询超过4的时候,读出的记录就不正确了,这个暂时先作为一个bug提给自己,这块儿功能完成了再好好研究一下到底是like的原因,还是查询字段的问题。
另外,我们也可以做到参数化传递,使用like {@parm} 构造的parm 如 "%" + value + "%",这样的形式。
还有一点要说明的是:使用LIKE关键字的时候,参数不要使用char型的数据,这会是输入的数据带有尾随空格,从而使查询失败。