类似运算符的SQL查询

时间:2014-04-28 17:03:47

标签: mysql sql

我有一个搜索框,用户在文本框中输入任何内容并提交。让我们说用户输入Peter.If我们在sql表中比较以下查询

select * from xml where name like '%peter%'

这个查询效果很好,但是当我想在字符串中只搜索peter时,就会产生一个问题。就像我只想搜索名字列中有Peter的那些行一样。 在名称列中,值1 - 我的名字是彼得。 valu2-我的名字是Peterwatter。 valu3-我的名字是彼得住在美国。 当我想要搜索它应该只给第一和第三行。不是第二行。以上查询我得到所有三行。我怎么能纠正。请指导这个

4 个答案:

答案 0 :(得分:3)

select * from xml 
 where name like '%peter'
    or name like '%peter %'

答案 1 :(得分:1)

有一种方法可以使用正则表达式,但一个简单的解决方案可以是这样的:

[name] like '% peter %' 
or [name] like '% peter' 
or [name] like 'peter %' 
or [name] = 'peter'

答案 2 :(得分:0)

尝试like '% peter %' (在外卡之前/之前有空格) 但请注意sql注射。 http://en.wikipedia.org/wiki/SQL_injection

答案 3 :(得分:0)

select * from xml 
 or name like '%Peter.'
 or name like 'Peter%'
 or name like 'Peter %'
 or name like '% Peter.'
 or name like '% Peter %'

编辑::现在它会。