SQL: как выполнить строку не равно

У меня есть следующий запрос

SELECT * FROM table
WHERE tester <> 'username';

Я ожидаю, что это вернет все результаты, когда тестер не является строкой username, но это не работает. Я думаю, что я ищу инверсию оператора Like, но я не уверен? В моих поисках я нашел решения для чисел (где я получил < > from), но это, похоже, не работает со строками.

Ответ 1

Ваше предложение where вернет все строки, где tester не соответствует username И где tester не является нулевым.

Если вы хотите включить NULL, попробуйте:

where tester <> 'username' or tester is null

Если вы ищете строки, которые не содержат слова "имя пользователя" в качестве подстроки, можно использовать like:

where tester not like '%username%'

Ответ 2

Попробуйте выполнить следующий запрос

select * from table
where NOT (tester = 'username')

Ответ 3

NULL-безопасное состояние выглядит следующим образом:

select * from table
where NOT (tester <=> 'username')

Ответ 4

select * from table
where tester NOT LIKE '%username%';

Ответ 5

Здесь может быть уместна функция strcomp (возвращает 0, когда строки идентичны):

 SELECT * from table WHERE Strcmp(user, testername) <> 0;

Ответ 6

Еще один способ получения результатов

SELECT * from table WHERE SUBSTRING(tester, 1, 8)  <> 'username' or tester is null