Ich habe eine Tabelle mit dem Namen mm_test wie folgt:
ID-Ausbildungen 1 3,4,6,8,9
Ich möchte prüfen, ob dieses Array (4,6) enthält. So überprüfen Sie dies mit MySQL-Abfrage. Mysql "IN" Befehl funktioniert nicht für mich.
Ich habe die Frage so gestellt ...
Wählen Sie * aus mm_test, wo Ausbildungen IN (4,6);
Diese Abfrage ergab jedoch ein leeres Ergebnis. Bitte helfen Sie mir jemand.
Antworten:
7 für die Antwort № 1Sie können dies mit verwenden find_in_set()
:
where find_in_set(4, educations) > 0 and
find_in_set(6, educations) > 0
Dies ist jedoch im Allgemeinen ineffizient. Das Problem ist Ihre Datenstruktur. Sie sollten eine Junction-Tabelle mit einer Spalte für jede Bildung verwenden, anstatt eine Liste von Ganzzahlen in einer sehr ungeeigneten Datenstruktur zu speichern - einer Zeichenfolge.
0 für die Antwort № 2
Benutze das FIND_IN_SET-Handbuch
SELECT *
FROM mm_test
WHERE FIND_IN_SET(4, educations) > 0
AND FIND_IN_SET(6, educations) > 0;