我在SQL查询精确匹配与SQL等,并且绑定
SELECT * FROM users WHERE name LIKE '%?%'
绑定设置?
困境。
现在,如果我想用类似的方法搜索一切工作,但如果没有更改sql,我想搜索完全匹配我现在不怎么做。
我尝试了一些正则表达式int文本框es: _jon \ jon \ [jon]和其他一些但没有正常工作。
任何想法?
我在SQL查询精确匹配与SQL等,并且绑定
SELECT * FROM users WHERE name LIKE '%?%'
绑定设置?
困境。
现在,如果我想用类似的方法搜索一切工作,但如果没有更改sql,我想搜索完全匹配我现在不怎么做。
我尝试了一些正则表达式int文本框es: _jon \ jon \ [jon]和其他一些但没有正常工作。
任何想法?
查询更改为
select * from users where name like '?'
如果你想要做的通配符匹配,把通配符,你绑定变量字符串的一部分。如果你不想做通配符匹配,那就不要。
注意like
和=
有相同的性能除了当你的通配符是第一个字符串中(例如,'%bob'
)在这种情况下,查询优化器不能使用索引和查找你正在寻找的行。
如果sql包含%符号,则无法搜索完全匹配,因为它们是通配符。您需要更改SQL来
select * from users where name = '?'
精确匹配
(你也可以使用select * from users where name like '?'
但更低效)
是什么让你从改变SQL?
Like条件适用于'相似'匹配,而'='适用于完全匹配。
这是关于SQL或JPQL(和JPA)的问题吗? – 2010-05-25 15:56:40