我有一个搜索框,用户在文本框中输入任何内容并提交。让我们说用户输入Peter.If我们在sql表中比较以下查询
select * from xml where name like '%peter%'
这个查询效果很好,但是当我想在字符串中只搜索peter时,就会产生一个问题。就像我只想搜索名字列中有Peter的那些行一样。 在名称列中,值1 - 我的名字是彼得。 valu2-我的名字是Peterwatter。 valu3-我的名字是彼得住在美国。 当我想要搜索它应该只给第一和第三行。不是第二行。以上查询我得到所有三行。我怎么能纠正。请指导这个
答案 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 %'
编辑::现在它会。