Ich erstelle eine benutzerdefinierte Suche in einer DB mit 6 verschiedenen Spalten. Um die Suche durchzuführen, habe ich 6 verschiedene Eingabefelder, die nur Zahlen akzeptieren.
Ich habe die Suche mit den 6 Spalten bereits zum Laufen gebracht, der Code:
SELECT * FROM data
WHERE 1_column IN ('$a1a','$a2a','$a3a','$a4a','$a5a','$a6a')
AND 2_column IN ('$a1a','$a2a','$a3a','$a4a','$a5a','$a6a')
AND 3_column IN ('$a1a','$a2a','$a3a','$a4a','$a5a','$a6a')
AND 4_column IN ('$a1a','$a2a','$a3a','$a4a','$a5a','$a6a')
AND 5_column IN ('$a1a','$a2a','$a3a','$a4a','$a5a','$a6a')
AND 6_column IN ('$a1a','$a2a','$a3a','$a4a','$a5a','$a6a')
ORDER BY id ASC;
Dies liefert das richtige Ergebnis unabhängig von der Eingabe-Reihenfolge.
Aber ich möchte, dass das SELECT mir Ergebnisse liefert, ob es Übereinstimmungen mit 4 oder 5 der eingegebenen Zahlen findet. Ich habe es mit OR versucht, weiß aber nicht, wie ich die Anzahl der übereinstimmenden Spalten definieren soll.
Ist das möglich?
Vielen Dank für die Aufmerksamkeit!
Bearbeiten: -------------------
Ich bin mit dem von dbaseman bereitgestellten Code ins Stocken geraten.
Weil ich zwar ein richtiges Ergebnis bekomme, aber wirklich nicht weiß, ob es durch das Matching von 4, 5 oder 6 Spalten generiert wurde.
Ich habe versucht, ein CASE WHEN nachträglich einzufügen, aber es funktioniert nicht.
Gibt es eine Möglichkeit herauszufinden, welche Kombination von Spalten mir das Ergebnis lieferte?
Habe an so etwas gedacht (ungefähr) wenn = 4, dann Ergebnis-4, sonst wenn = 5, dann Ergebnis-5...usw... Und dann in der Lage sein, die Zeile in einem Array zu platzieren.
Danke!