2013-09-28 4 views
5

Ich habe diese Datenbank Weicht enthält Produktcodes wieSuche Zeichenfolge mysql db, die Leerzeichen haben kann, in einer anderen Zeichenfolge sein, etc

EXA 075 11112 
0423654 
3 574 662 123 
JOLA 22354 5 
LUCS 2245 785 

Ich verwende eine Abfrage mit% LIKE%, um die Produkte Liste mathing eine Zeichenfolge eingegeben durch den Benutzer zum Beispiel „22“ würde Liste

JOLA 22354 5 
LUCS 2245 785 

das Problem ist, dass der Benutzer nicht weiß, unbedingt das Format des Codes, so dass es Typen in 07.511.112 und der Ausgang ist Null, weil „EXA 075 11112“ entspricht nicht% LIKE%.

Gibt es eine Möglichkeit, die Abfrage zu erstellen, um alle Leerzeichen aus dem Produktfeld zu trimmen, bevor die Suche auftritt, und dann nach der Zeichenfolge auch getrimmt von Leerzeichen mit% LIKE% zu suchen? Ich denke, es sollte dann alle Einträge übereinstimmen. Oder gibt es einen anderen Weg? Ich kann nicht ersetzen '', '' auf der Spalte, die Codes müssen bleiben, wie es jetzt ist.

+1

ersetzen würde ich eine Spalte ohne Leerzeichen hinzufügen, nur für die Suchfunktion. – GolfWolf

+0

Was @ w0lf sagte. Und wahrscheinlich schauen Sie sich FULLTEXT an, um solche Suchen zu bearbeiten – leon

Antwort

3

Sie nutzen könnten Funktion

select * 
from mytable 
where REPLACE(`productcode` , ' ' , '') like '%searchparam%' 
Verwandte Themen