2016-10-02 1 views
0

Ich habe eine mysql db mit phonenumbers, aber ich kann die Datenbank nicht bearbeiten ...Welcher Ansatz ist bei der Suche nach Werten in mysql db besser?

Ich habe ein PHP-Formular, das die Verbindungen und fragt, ob eine Nummer existiert und wenn es tut, wird es mit 1 antworten/0 (ja/nein).

aber ... einige Telefonnummern, die ich kenne bestehenden nicht erscheinen wird, und ich fand heraus, dass einige Zahlen Räume zufällig in der Telefonnummer enthält ...

Wie kann ich meine mysql query verbessern oder sollte ich einfach nimm alle Zahlen, ersetze alle Leerzeichen und setze sie in ein Array und vergleiche dann mit meinem Wert über die Schleife durch?

Beispiele von dem, was jede einzelne Zelle enthält ...

070 00 000 00 
0700 0000 00 
070 0 0 0 0 0 0 0 
0 700000000 
+1

* Wie kann ich meine mysql-Abfrage verbessern * Sollten wir es erraten? Wie können wir etwas verbessern, das Sie geheim halten? –

+0

Ist das ein echtes Problem oder nur eine Hausaufgabe? Die richtige Lösung für den einen ist die falsche Lösung für den anderen. – symcbean

Antwort

0

Entfernen Sie einfach alle Felder aus, die beide von der gespeichert und forderte die Telefonnummer, und vergleichen Sie sie wie folgt:

SELECT * FROM contacts 
WHERE REPLACE(phone, ' ', '') = <Requested-Phone-Number-Without-Spaces> 
+0

Dies ist leider ein extrem intensiver Prozess. Sie werden die Geschwindigkeit mit einer ziemlich kleinen Anzahl von Zahlen bemerken. @op Sie sagen, dass Sie die Datenbank nicht bearbeiten können, ich würde es aber sicherlich empfehlen. Auch wenn es nur bedeutet, eine neue Spalte mit den spaceless Zahlen hinzuzufügen. – rjdown

Verwandte Themen