So habe ich ein interessantes Thema, das ich nie gestoßen bin und scheint nicht viele Informationen über die Behebung des Problems zu finden. Ich habe eine riesige Datenbank, die eine riesige Menge an Daten enthält (10 Jahre wert) und versucht, sie zu durchsuchen.Mysql Abfrage Probleme mit LIKE und Apostroph
Jetzt funktioniert die Suche gut, aber vor kurzem hat jemand mich auf einen "Bug" aufmerksam gemacht, wenn Sie so wollen. Ich habe versucht, Probleme zu ertragen, um die erwarteten Ergebnisse zu erzielen, aber ohne Erfolg.
Das ist mein Problem:
Wenn jemand einen Apostroph bei der Suche verwendet wird, ist es nicht, dass die Suchfehler, aber es keine Ergebnisse. So zum Beispiel bei der Suche Pete's
die Abfrage ausgeführt wird, aber nichts zurückgibt. Ja, ich stelle sicher, dass die Abfrage den mysql_real_escape_string() hat, so dass Pete's
Pete\'s
wird.
Selbst wenn ich versuche, es mit der Suchfunktion von phpmysql abzufragen, bekomme ich seltsame Ergebnisse. Die Abfrage soll so sein:
SELECT * FROM `smd_article` WHERE `copy` LIKE '%Pete\'s%'
Aber wenn ich die Suchfunktion in phpMyAdmin verwenden, es gibt mir:
SELECT * FROM `smd_article` WHERE `copy` LIKE '%Pete''s%'
Und wenn ich tippen tatsächlich die Abfrage in der SQL-Registerkarte Es gibt immer noch keine Ergebnisse. Aber es gibt einige 17K-Records, die zurückgegeben werden, wenn ich nur Pete und einige 3k-Records verwende, wenn ich nur Petes mache.
So bin ich neugierig, was ich falsch mache, oder fehlt, um es so zu machen, dass es den Apostroph in einer Abfrage mit der LIKE-Anweisung ermöglichen kann. Gedanken?
off topic, aber es ist erwähnenswert, dass Wildcard Abfragen wie folgt zu wissen, sind die langsamste Art und Weise zu abfragen eine Datenbank. Für einen kleinen Tisch mag ich okay sein, aber wenn Sie auch nur einen mäßig großen Tisch haben, kann das die Dinge wirklich verlangsamen. Sei gewarnt. – SDC