Вы можете использовать FIND_IN_SET
:
SELECT *
FROM `customers`
WHERE FIND_IN_SET(13, `cat_id`) > 0 OR FIND_IN_SET(14, `cat_id`) > 0
Примечание: Вы не должны хранить такое значение!
Вместо этого ваши таблицы должны выглядеть следующим образом, чтобы избежать решения, использующего FIND_IN_SET
:
table customers
:
CustomerID | ContactName | Address | City | PostalCode | Country
1 | Maria Anders | Obere Str | Berlin | 12209 | Germany
4 | Thomas Hardy | 120 Hanov | London | WA1 1DP | UK
table customers_cats
:
customer_id | cat_id
1 | 13
4 | 13
4 | 14
таблица cats
:
CatID | Column1
---------------
13 | abc
14 | def
Таким образом, запрос будет выглядеть следующим образом:
SELECT c.*
FROM `customers` c LEFT JOIN `customers_cats` cc ON c.CustomerID = cc.customer_id
WHERE cc.cat_id IN (13, 14)