2016-03-20 23 views
0

Meine Hund Datenbank enthält eine Spalte "hd" mit einem Wert zwischen A und E oder nichts, wenn die HD-Bewertung nicht bekannt ist.Wordpress MYSQL SELECT WHERE Platzhalter enthält NULL

Ich implementiere ein Benutzerformular für die Abfrage der Datenbank von Wordpress.

Ich erwarte, dass die meisten Benutzer mit hd Bewertungen zwischen A und C wählen Hunde wollen, und ich in der Lage gewesen, dies zu tun mit:

WHERE hd REGEXP "[A|B|C]"; 

Aber es scheint keine Wildcard-Lösung mit REGEXP zu sein , so dass, wenn der Benutzer kann ich

wenn ich nicht über eine Auswahl an HD benötigt
WHERE hd LIKE "%"; 

Allerdings verwende LIKE kann ich zu einer Zeit für einen hd Code suchen. zB WHERE hd wie "B";

Ich habe es auch geschafft, mit mehreren Werten wählen:

WHERE hd IN ('A','B','C'); 

Aber ich kann mehrere Werte oder Wildcard nicht

WHERE hd IN ("%"); 

Aber was brauchen, ist mir wirklich eine Auswahl an als sein kann an die SELECT-Anweisung im $ _POST-Array übergeben.

Alle Vorschläge willkommen.

Gary

Antwort

0

Wie wäre es mit der Spalte selbst?

WHERE hd IN ('A','B','C') 

oder

WHERE hd IN (hd) 

Dies funktioniert, wenn hd nicht NULL ist.

Eine Alternative könnte wie folgt aussehen:

WHERE ((hd >= $hd_low and hd >= $hd_high) or $hd_low is null) 
0

Sieht aus wie ich die Antwort selbst gefunden:

WHERE hd IN ('A','B','C','D','E',''); 

wählt alle hd Kategorien + nulls.

Benutzer müssen nur D, E und '' aus dem Formular löschen, wenn sie eine Auswahl nur für A, B und C wünschen.

Verwandte Themen