MySQL вопрос о "обратном НРАВИТСЯ" - PullRequest
5 голосов
/ 27 августа 2009

Хорошо, учитывая, что у меня есть значение, которое я хочу проверить на наличие потенциальных совпадений в базе данных (в одном поле varchar), поэтому я пишу что-то вроде:

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

Что будет работать, если значение равно «test», а столбец имеет значение «this is test», однако, если он обратный, я не получу совпадение, которое я пробовал по принципу:

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

но не знаю точно, как сформулировать это в Google, чтобы получить ответ, который мне нужен, пожалуйста, помогите!

Ответы [ 2 ]

11 голосов
/ 27 августа 2009

Вы можете отменить оператор like. Просто используя тот же синтаксис, что и обычный like запрос:

select
    *
from
    table
where
    'value' like concat('%', column, '%')

Конечно, если вы чувствуете себя диким и сумасшедшим, вы также можете использовать instr:

select * from table where instr('value', column) > 0

Я не знаю, какой из них быстрее, так как у меня нет экземпляра MySQL для тестирования, но стоит попробовать оба, чтобы увидеть, какие победы.

3 голосов
/ 27 августа 2009
SELECT *
FROM table
WHERE 'value' LIKE CONCAT('%', column, '%')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...