Я искал лучший способ сделать это, но не нашел ничего, что бы работало в моей конкретной ситуации.Это в SQLite.
У меня следующий запрос:
select color1, color2
from table
where color1 = 'red'
and color2 not like '%red%'
and color2 not like '%scarlet%'
and color2 not like '%cherry%'
Другими словами, я пытаюсь выбрать цвета, которые не соответствуют известным вариантам цвета.Я должен использовать like
, потому что это текст произвольной формы.
Мой запрос работает нормально, но он становится громоздким, когда я добавляю к нему больше вариантов.Я попытался поместить варианты в другую таблицу и использовать подзапрос, например так:
select color1, color2
from table
where color1 = 'red'
and color2 not like '%' || (select color_alias from color where color =
'red') || '%'
Однако оператор like оценивает только первую запись, возвращенную подзапросом.
Кто-нибудь знает оспособ включить варианты цветов в таблицу поиска и по-прежнему использовать оператор like
?