我在SQL查询中有一个绑定
SELECT * FROM users WHERE name LIKE '%?%'
绑定设置?
。
现在,如果我想用类似的方法搜索一切正常但是如果没有更改sql,我想搜索完全匹配我现在不怎么做。
我在文本框中尝试了一些regexp: _jon \ jon \ [jon]和其他一些人但没有任何工作正常。
有什么想法吗?
答案 0 :(得分:2)
将您的查询更改为
select * from users where name like '?'
如果要进行通配符匹配,请将通配符作为绑定到变量的字符串的一部分。如果您不想进行通配符匹配,则不要。
请注意,like
和=
在字符串中首先使用通配符时,性能 除外(例如,{{}在这种情况下,查询优化器也不能使用索引来查找您正在查找的行。
答案 1 :(得分:0)
如果sql包含%符号,则无法搜索完全匹配,因为它们是通配符。你需要将sql更改为
select * from users where name = '?'
完全匹配
(您也可以使用select * from users where name like '?'
但效率更低)
答案 2 :(得分:0)
什么阻止您更改SQL?
Like条件用于'相似'匹配,而'='用于完全匹配。