Возможно ли связать несколько шаблонов SQL LIKE в одном запросе – что-то вроде этого?
LIKE '% aaaa%' И LIKE '% bbbb%'
Цель состоит в том, чтобы найти записи, содержащие обе дикие карты, но не в определенном порядке.
Правильный синтаксис SQL:
field LIKE '% aaaa %' AND field LIKE '% bbbb %'
Да, это сработает, но синтаксис:
Field LIKE '%aaa%' AND field LIKE '%bbb%'
Это полезно, когда вы используете этот оператор с переменными.
SELECT * FROM `tableName` WHERE `colName` LIKE CONCAT('%', 'aaaa', '%') AND -- if aaaa is direct Text `colName` LIKE CONCAT('%', 'bbbb', '%') SELECT * FROM `tableName` WHERE `colName` LIKE CONCAT('%', aaaa, '%') AND -- if aaaa is variable `colName` LIKE CONCAT('%', bbbb, '%')
Да, но помните, что LIKE – это оператор, похожий на ==
или >
на других языках. Вам еще нужно указать другую сторону уравнения:
SELECT * FROM myTable WHERE myField LIKE '%aaaa%' AND myField LIKE '%bbbb%'
Можно сгруппировать произвольное число условий. Тем не менее, разумно использовать скобки для группировки предложений для устранения любой двусмысленности:
SELECT * FROM tableName WHERE (columnOne LIKE '%pattern%') AND (columnTwo LIKE '%other%')