关于"反向喜欢"的MySQL问题

And*_*son 5 mysql sql

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

SELECT * FROM table WHERE column LIKE "%value%"
Run Code Online (Sandbox Code Playgroud)

如果值类似于"test"并且列具有"这是一个测试"的值,那么它将起作用,但如果它被反转,那么我将不会得到匹配,我尝试了以下方面的事情:

SELECT * FROM table WHERE CONCAT("%",column,"%") LIKE "value"
Run Code Online (Sandbox Code Playgroud)

但不知道到底该如何用谷歌来表达我需要的回复,请帮忙!

Eri*_*ric 11

你可以撤销like声明.只需使用与常规like查询相同的语法:

select
    *
from
    table
where
    'value' like concat('%', column, '%')
Run Code Online (Sandbox Code Playgroud)

当然,如果你觉得狂野和疯狂,你也可以使用instr:

select * from table where instr('value', column) > 0
Run Code Online (Sandbox Code Playgroud)

我不知道哪一个更快,因为我没有要测试的MySQL实例,但是值得尝试看看哪个获胜.