关于“反向喜欢”的MySQL问题

时间:2009-08-27 16:02:14

标签: sql mysql

好吧,我有一个值,我想检查数据库中的潜在匹配(在一个varchar字段中),所以我写了类似的东西:

SELECT * FROM table WHERE column LIKE "%value%"

如果值类似于“test”并且该列的值为“this is a test”,那将会起作用,但如果它被反转,那么我将无法获得匹配,我尝试了以下方面:< / p>

SELECT * FROM table WHERE CONCAT("%",column,"%") LIKE "value"

但是我不确切地知道如何向Google发表这样的评论以获得我需要的回复,请帮忙!

2 个答案:

答案 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, '%')