übereinstimmen sollte ich die Abfrage:Mysql Wo ... In ... und wo ... in ... nur auf denselben Index
SELECT * FROM `users`
WHERE (`firstname` LIKE 'Luke' AND `lastname` LIKE 'Skywalker') OR
(`firstname` LIKE 'Foo' AND `lastname` LIKE 'Bar') OR
(`firstname` LIKE 'Tom' AND `lastname` LIKE 'Turner');
Aber ich möchte es ein bisschen besser lesbar machen durch einen wo mit ... in ... habe ich versucht,
SELECT * FROM users
WHERE `firstname`
IN ('Luke','Foo','Tom') AND `lastname` IN ('Skywalker','Bar','Turner');
Aber leider wird dies auch "Tom Skywalker"
passen, "Foo Turner"
und alle mischt man denken weg kann.
Ich muss auf Vor- und Nachname (vielleicht mehr Felder wie DOB) auswählen, da ich Daten von einer externen API bekomme und ich muss überprüfen, ob diese Namen in unserem System sind.
Wie groß ist der Umfang der Daten in Ihrer Tabelle "users" und die Anzahl der Zeilen der externen API, die Sie vergleichen müssen? 100 Zeilen? 50.000 Reihen? – mellamokb
Ich kann bis zu 1000 Namen von der externen API zurückbekommen (ich möchte Facebook-Freunde mit Benutzern aus meiner eigenen Datenbank verbinden) meine eigene Datenbank kann bis zu 10000 Zeilen bekommen (sie befindet sich derzeit in einer Testphase, aber ich möchte sie optimieren alle meine SQL-Abfrage ist in einem frühen Stadium) – Werring