我有以下查询
SELECT * FROM table
WHERE tester <> 'username';
我希望这会返回test不是字符串username
的所有结果,但这不起作用。我想我正在寻找Like
运算符的逆,但我不确定?在我的搜索中,我找到了数字的解决方案(我得到的&lt;&gt;来自),但这似乎不适用于字符串。
答案 0 :(得分:149)
您的where
子句将返回tester
与username
不匹配且tester
不为空的所有行。
如果要包含NULL,请尝试:
where tester <> 'username' or tester is null
如果您要查找的字符串不包含&#34;用户名&#34;作为子字符串,可以使用like
:
where tester not like '%username%'
答案 1 :(得分:33)
尝试以下查询
select * from table
where NOT (tester = 'username')
答案 2 :(得分:16)
NULL安全条件如下所示:
select * from table
where NOT (tester <=> 'username')
答案 3 :(得分:7)
select * from table
where tester NOT LIKE '%username%';
答案 4 :(得分:7)
此处strcomp
函数可能合适(当字符串相同时返回0):
SELECT * from table WHERE Strcmp(user, testername) <> 0;
答案 5 :(得分:0)
获取结果的另一种方法
SELECT * from table WHERE SUBSTRING(tester, 1, 8) <> 'username' or tester is null