Frage SQL: Wie der String ausgeführt wird, ist nicht gleich


Ich habe folgende Abfrage

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

Ich erwarte, dass dies alle Ergebnisse zurückgibt, wo Tester nicht die Zeichenfolge ist usernameAber das funktioniert nicht. Ich denke, ich suche nach der Umkehrung der Like Betreiber, aber ich bin mir nicht sicher? In meinen Suchen habe ich Lösungen für Zahlen gefunden (das ist, wo ich <> von), aber das scheint nicht mit Strings zu arbeiten.


75
2018-05-01 18:56


Ursprung


Antworten:


Ihre where clause gibt alle Zeilen zurück wo tester stimmt nicht überein username Und wo tester ist nicht null.

Wenn Sie NULLs einfügen möchten, versuchen Sie Folgendes:

where tester <> 'username' or tester is null

Wenn Sie nach Zeichenfolgen suchen, die das Wort "Benutzername" nicht als Teilzeichenfolge enthalten, dann like kann verwendet werden:

where tester not like '%username%'

119
2018-05-01 18:58



Versuchen Sie die folgende Abfrage

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

30
2018-05-01 18:58



NULL-sichere Bedingung würde wie folgt aussehen:

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

13
2017-09-01 18:00



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

7
2018-05-01 19:00



Das strcomp Funktion kann hier angebracht sein (gibt 0 zurück, wenn Strings identisch sind):

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

7
2018-06-18 04:37