Ich schreibe eine Abfrage, die mir erlauben sollte, in verschiedenen Spalten nach einem bestimmten Suchstring zu suchen.mysql - concat für den Wert innerhalb einer einzelnen Zelle verwenden
Meine Datenbank als 3 Spalten Ich brauche den Suchbegriff zu suchen und vergleichen mit:
manufacturer
model
number
Das Problem, das ich habe ist, dass die Menschen (in beliebiger Reihenfolge) jede dieser Spalten suchen erlaubt sein sollen, .
Jetzt habe ich concat_ws('%20',manufacturer,model,number) like '%$q%'
verwendet und es funktioniert irgendwie.
Nehmen wir an, ich habe diese Werte in meine DB Spalten (wie sie jetzt sind, kein Komma und kein Trenn - sie Namen in mein Lese DB sind, ich vereinfacht sie als Buchstaben hier der Einfachheit halber):
manufacturer: A B
model: C D E
number: F G H
und ich möchte suchen:
A B C D F H //this doesn't work.
A C F //this does work.
Das Problem, das ich habe ist, dass alle meine Spalten können durch mehrere, mit Leerzeichen getrennt, Wörtern zusammengesetzt werden.
Wie kann ich in jeder Reihenfolge nach jedem Wort in jeder Spalte suchen?
hoffen diese frage ist klar genug, bitte zögern sie nicht fragen sie mehr details wenn erforderlich.
Dank
Was ist der Grund für die Verwendung von Concat? Sie können so etwas tun: 'Hersteller wie '% string%' oder Modell wie '% string%' oder Nummer wie '%%'' –
Es war, weil ich in der Lage sein muss, nach jeder Spalte in jedem möglichen order zu suchen . Ich habe gerade Ihren Vorschlag getestet, aber das funktioniert auch nicht, weil ich am Ende eine Zeichenfolge mit Hersteller-Modellnummer und Hersteller wie '% Hersteller Modellnummer%' ist leer, wie es nicht in der Spalte Hersteller ist so – Nick
Kannst du bitte die volle sql posten? –