好吧,我有一个值,我想检查数据库中的潜在匹配(在一个varchar字段中),所以我写了类似的东西:
SELECT * FROM table WHERE column LIKE "%value%"
如果值类似于“test”并且该列的值为“this is a test”,那将会起作用,但如果它被反转,那么我将无法获得匹配,我尝试了以下方面:< / p>
SELECT * FROM table WHERE CONCAT("%",column,"%") LIKE "value"
但是我不确切地知道如何向Google发表这样的评论以获得我需要的回复,请帮忙!
答案 0 :(得分:11)
您可以撤消like
声明。只需使用与常规like
查询相同的语法:
select
*
from
table
where
'value' like concat('%', column, '%')
当然,如果你感到狂野和疯狂,你也可以使用instr
:
select * from table where instr('value', column) > 0
我不知道哪一个更快,因为我没有要测试的MySQL实例,但是值得尝试看看哪个获胜。
答案 1 :(得分:3)
SELECT *
FROM table
WHERE 'value' LIKE CONCAT('%', column, '%')