У меня есть таблица, которая содержит отдельные слова (например, A, B и C) и составные слова (например, AB, AC и AD).Я хочу выбрать все записи, которые содержат только слова из предопределенного списка слов.
Пример
id word
-- -----
1 A
2 B
3 C
4 D
5 AB
6 AC
7 AD
Учитывая список ('A', 'B'), я хочу выбратьслова A, B и AB.То есть я хочу отфильтровать все, что содержит что-то кроме A или B.
Когда я использую SELECT * from table WHERE word in ('A','B')
, я получаю только A и B, без соединения AB.
КогдаЯ использую SELECT * from table WHERE word like '%A%' or word like '%B%'
, я получаю A, B, AB, AC и AD.
По сути, я мог бы сделать следующее:
- Шаг 1:
SELECT word from table WHERE word not like '%A%' and word not like '%B%'
, который возвращаетC и D. - Шаг 2:
SELECT * from table WHERE word not like '%C%' and word not like '%D%'
, который возвращает A, B и AB.
Однако я не знаю, как объединить два запроса.Я читал о подзапросах, но они не работают с оператором like.
Спасибо за помощь!