2017-06-21 2 views
0

Ich möchte meine MYSQL-Abfrage-Bedingungen aktualisieren, um auch das Äquivalent von "UND alle Zahlen in Array 1 sind in Array 2 vorhanden" zu enthalten.MYSQL - Vergleichen 2 Arrays

Array1: (1,14,7) 
Array2: (1,23,45,14,6) 

Also würde dieses Beispiel fehlschlagen, weil "7" nicht vorhanden ist. Wenn ich "IN" verwende, würde es erfordern, dass sie in der gleichen Reihenfolge übereinstimmen? oder kannst du das vergleichen?

Kann ich dies als Teil der MYSQL-Abfrage tun, oder muss ich zuerst die Ergebnisse bekommen und dann durch sie werfen einige, die nicht übereinstimmen?

Jede Hilfe sehr geschätzt :-)

+0

MySQL-Arrays nicht unterstützt, so dass Ihre Frage nicht wirklich Sinn machen. –

+0

Sie könnten "Array" durch "Tabelle" ersetzen und dann wäre Ihre Frage beantwortbar. –

+0

Sorry über die Terminologie Jungs - MYSQL ist wirklich nicht mein Ding - lol. Ich weiß, dass ich eine Variable verwenden kann, die eine durch Komma getrennte Liste von Werten für eine IN-Prüfung enthält (zB "IF 5 IN ($ val)" - wobei $ val = 1,2,3,4 - aber ich nehme den Ausdruck an, der verglichen wird kann nicht auch eine Variable sein, die eine Liste enthält? – user2086003

Antwort

0

Reihenfolge spielt keine Rolle. Sie diese Bedingung

WHERE SomeColumn IN (1,14,7) AND SomeColumn IN (1,23,45,14,6) 

Sie den Schnittpunkt zwischen den beiden Sätzen verwenden geben Dies ist, das sind 1 & 14 nur

+0

Excellent - wir werden wärmer Die Bedingung muss sein "wenn ALLE diese Nummern (1. Liste) in diesen Nummern enthalten sind (2. Liste)". Beide Listen sind ein Array von Zahlen Wenn es in MYSQL nicht möglich ist, kann ich einfach die Zeilen abrufen und dann eine Schleife verwenden, um diejenigen zu entfernen, die sich nicht qualifizieren - ich versuche nur, alles schneller zu machen, indem ich sie früher disqualifiziere. – user2086003