SQL:如何执行字符串不等于

时间:2013-05-01 18:56:29

标签: mysql

我有以下查询

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

我希望这会返回test不是字符串username的所有结果,但这不起作用。我想我正在寻找Like运算符的逆,但我不确定?在我的搜索中,我找到了数字的解决方案(我得到的&lt;&gt;来自),但这似乎不适用于字符串。

6 个答案:

答案 0 :(得分:149)

您的where子句将返回testerusername不匹配且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