SQL: How to perform string does not equal
MysqlMysql Problem Overview
I have the following query
SELECT * FROM table
WHERE tester <> 'username';
I am expecting this to return all the results where tester is not the string username
, But this not working. I think I am looking for the inverse of the Like
operator but I am not sure? In my searches I have found solutions for numbers (that's where i got <> from), but this seems to not be working with strings.
Mysql Solutions
Solution 1 - Mysql
Your where
clause will return all rows where tester
does not match username
AND where tester
is not null.
If you want to include NULLs, try:
where tester <> 'username' or tester is null
If you are looking for strings that do not contain the word "username" as a substring, then like
can be used:
where tester not like '%username%'
Solution 2 - Mysql
Try the following query
select * from table
where NOT (tester = 'username')
Solution 3 - Mysql
NULL-safe condition would looks like:
select * from table
where NOT (tester <=> 'username')
Solution 4 - Mysql
select * from table
where tester NOT LIKE '%username%';
Solution 5 - Mysql
The strcomp
function may be appropriate here (returns 0 when strings are identical):
SELECT * from table WHERE Strcmp(user, testername) <> 0;
Solution 6 - Mysql
Another way of getting the results
SELECT * from table WHERE SUBSTRING(tester, 1, 8) <> 'username' or tester is null