繁体   English   中英

SQL查询类似运算符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM