与sql和bind完全匹配

时间:2010-05-25 12:12:41

标签: java sql jpa sql-like

我在SQL查询中有一个绑定

SELECT * FROM users WHERE name LIKE '%?%'

绑定设置?

现在,如果我想用类似的方法搜索一切正常但是如果没有更改sql,我想搜索完全匹配我现在不怎么做。

我在文本框中尝试了一些regexp: _jon \ jon \ [jon]和其他一些人但没有任何工作正常。

有什么想法吗?

3 个答案:

答案 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条件用于'相似'匹配,而'='用于完全匹配。