thgrch
Goto Top

MySQL DB - Zeige mir ALLES an ausser (Gegenteil von like)

Ich möchte alle Datensätze anzeigen, welche kein x imf Feld ab enthalten

Das Gegenteil von
select * where ab like '%x%';

Resultat
Anzeigen
YZ
NULL

Nicht anzeigen
X
YX
YXT

Danke für Eure Hilfe

Content-Key: 111534

Url: https://administrator.de/contentid/111534

Printed on: April 16, 2024 at 23:04 o'clock

Member: AndreasHoster
AndreasHoster Mar 16, 2009 at 14:02:25 (UTC)
Goto Top
Bin zwar kein MySQL Profi im Speziellen, kenne aber SQL im Allgemeinen und würde es so machen:
select * where ab not like '%x%';  
Member: Logan000
Logan000 Mar 16, 2009 at 14:15:39 (UTC)
Goto Top
Moin Moin

Zitat von @AndreasHoster:
Bin zwar kein MySQL Profi im Speziellen, kenne aber SQL im Allgemeinen
und würde es so machen:
 select * where ab not like '%x%';  

Fast. Null würde bei dieser Variante nicht mit angezeigt.
Das klappt nur mit einer unterabfrage und Not IN
SELECT *  FROM tabelle WHERE tabelle.ID NOT IN (Select ID FROM tabelle WHERE ab like '%x%')  

Gruß L.
Member: AndreasHoster
AndreasHoster Mar 16, 2009 at 14:44:40 (UTC)
Goto Top
OK, an NULL hatte ich nicht gedacht.
NOT IN ist allerdings etwas unperformant (so meine Erfahrungen).
Member: Logan000
Logan000 Mar 16, 2009 at 14:54:47 (UTC)
Goto Top
Moin

NOT IN ist allerdings etwas unperformant (so meine Erfahrungen).
Stimmt, wobei ich allerdings vermute das die Unterabfrage hier die stärkere Bremse ist.

Gruß L.
Member: bbyszio
bbyszio Mar 16, 2009 at 15:24:55 (UTC)
Goto Top
Wie wäre es mit :

select * where ab not like '%x% or ab is null';


Gruß
Bodo