[英]Sql query for like operator
我有一个搜索框,用户在文本框中输入任何内容并提交。假设用户输入Peter。如果我们在sql表中与以下查询进行比较
select * from xml where name like '%peter%'
此查询效果很好,但是当我只想搜索字符串中的pet时,就会产生问题。就像我只想搜索名称列中存在Peter的那些行一样。 在名称列中,值1-我叫彼得。 valu2-我叫Peterwatter。 valu3-我叫彼得,住在美国。 当我想搜索时,它应该只给出第一行和第三行。而不是第二行。使用上面的查询即时获取所有三行。我该如何更正。请对此进行指导
select * from xml
where name like '%peter'
or name like '%peter %'
使用正则表达式可以做到这一点,但是一个简单的解决方案可以像这样:
[name] like '% peter %'
or [name] like '% peter'
or [name] like 'peter %'
or [name] = 'peter'
尝试like '% peter %'
(在通配符之前/之后有空格),但是请注意sql注入。 http://en.wikipedia.org/wiki/SQL_injection
select * from xml
or name like '%Peter.'
or name like 'Peter%'
or name like 'Peter %'
or name like '% Peter.'
or name like '% Peter %'
编辑::现在它将。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.