Подтвердить что ты не робот

Как добавить несколько "НЕ НРАВИТСЯ"%?% 'В предложении WHERE sqlite3?

У меня есть запрос sqlite3 как:

SELECT word FROM table WHERE word NOT LIKE '%a%';

Это позволит выбрать все слова, в которых слово "а" не встречается. Это я могу получить на работу отлично. Проблема в том, что если я захочу еще больше ограничить результаты, чтобы они не включали слово "b" в слова. Я представляю что-то вроде этого.

SELECT word FROM table WHERE word NOT IN ('%a%', '%b%', '%z%');

что это, очевидно, не работает, но это идея. Я просто пытаюсь избежать добавления предложения AND:

SELECT word FROM table WHERE word NOT LIKE '%a%' AND NOT LIKE '%b%';

Если это единственный вариант, мне придется с этим поработать, но я надеялся на что-то еще.

4b9b3361

Ответ 1

Если вы используете поддержку Sqlite REGEXP (см. ответ на Проблема с regexp python и sqlite, как это сделать), то вы можете сделать это легко в одном пункте

SELECT word FROM table WHERE word NOT REGEXP '[abc]';

Ответ 2

SELECT word FROM table WHERE word NOT LIKE '%a%' 
AND word NOT LIKE '%b%' 
AND word NOT LIKE '%c%';

Ответ 3

Вы пропустили второе утверждение: 1) НЕ НРАВИТСЯ A, И 2) НЕ НРАВИТСЯ B

SELECT word FROM table WHERE word NOT LIKE '%a%' AND word NOT LIKE '%b%'

Ответ 4

Запрашиваемый запрос будет

SELECT word FROM table WHERE word NOT LIKE '%a%' AND word NOT LIKE '%b%'

Ответ 5

Я не уверен, почему вы избегаете AND. Это простейшее решение.

В противном случае вам нужно будет выполнить INTERSECT несколько запросов:

SELECT word FROM table WHERE word NOT LIKE '%a%'
INTERSECT
SELECT word FROM table WHERE word NOT LIKE '%b%'
INTERSECT
SELECT word FROM table WHERE word NOT LIKE '%c%';

В качестве альтернативы вы можете использовать регулярное выражение, если ваша версия SQL поддерживает его.

Ответ 6

это команда выбора

   FROM
    user
WHERE
    application_key = 'dsfdsfdjsfdsf'
        AND email NOT LIKE '%applozic.com'
        AND email NOT LIKE '%gmail.com'
        AND email NOT LIKE '%kommunicate.io';

эта команда обновления

 UPDATE user
    SET email = null
    WHERE application_key='dsfdsfdjsfdsf' and  email not like '%applozic.com' 
    and email not like '%gmail.com'  and email not like '%kommunicate.io';

Ответ 7

Если у вас возникли проблемы с запросом "не как", Учтите, что у вас может быть нуль в базе данных. В этом случае используйте:

IFNULL(word, '') NOT LIKE '%something%'