Извините, если это уже было задано, но его сложно найти.Есть ли способ иметь несколько предложений IN в одном запросе?
У меня есть столбец, который состоит из списка слов, как «яблоко, виноград, апельсин, банан, груша»
Если бы я хотел, чтобы найти строку, которая содержала определенное слово, которое я использовал бы запрос, как:
SELECT * FROM tablename WHERE 'apple' IN(list_of_words)
Однако я хотел бы найти все строки, которые содержат несколько слов. Нечто подобное, что не работает:
SELECT * FROM tablename WHERE 'apple' IN(list_of_words) AND 'orange' IN(list_of_words)
используя что-то вроде:
WHERE list_of_words LIKE "%grape%" AND list_of_words LIKE "%apple%"
бы также не будет работать, потому что тогда было бы найти «грейпфрут» и «Крабапл»
Есть любой простой способ сделать это уже встроен в SQL?
Спасибо.
_I есть столбец, который состоит из списка IDs_ и это является реальной проблемой. Ваша база данных неправильно [нормирована] (https://en.wikipedia.org/wiki/Database_normalization). Исправьте это, и у вас не будет проблем с запросами запросов. Кроме того, будет много других преимуществ, таких как целостность. – jpw
Легкий способ сделать это - исправить ваши данные, чтобы у вас не было ни одного столбца со списком нескольких записей. Если вы обнаружите необходимость бороться с извлечением данных, это, как правило, из-за плохой структуры базы данных; это указывает на то, что вам нужно выполнить некоторую переработку схем таблиц, чтобы исправить проблему, а не бороться за ее работу. –
Какие ошибки вы получаете? – Malkus