2016-05-11 12 views
0

Ich mache eine Art Suchmaschine, wo ich die MySQL-Anweisung LIKE verwenden. Nun, in meiner Datenbank hat jede Zeile eine Spalte keywords, diese Spalte kann leer sein, oder eine Zeichenfolge mit durch Komma getrennten Wörtern haben example,string,in,column.MySQL Split-String, und auf Gleichheit prüfen

Ist es in irgendeiner Weise möglich, diese Zeichenkette bei Verwendung einer WHERE-Anweisung zu trennen und für jedes Wort auf LIKE zu prüfen?

Antwort

1

Nicht mit SQL.

Ein relationaler DB sollte keine Felder mit kommaseparierten Strings enthalten. Jedes Feld sollte gemäß der "ersten Normalform" atomar sein (nur ein Wert pro Feld).

Werte in den Bereichen, auf denen jeder Beziehung definiert ist sind erforderlich in Bezug auf die DBMS

Atom zu sein ->en.wikipedia.org/wiki/First_normal_form

+0

Danke, ich habe eine eigene Tabelle für Schlüsselwörter erstellt und separate Spalten für jedes Wort jetzt. – Kaizokupuffball

+0

Ich habe jetzt ein neues Problem, dass ich es geändert habe. http://i.imgur.com/0WNcZQB.png Meine MySQL-Abfrage sieht jetzt so aus und gibt nur Unternehmen zurück, die eine Zeile in Stichwörtern haben. Ich versuche jetzt, Zeilen zurückzugeben, die auch keine Keywords in der Keyword-Tabelle enthalten. Ist die Abfrage falsch? – Kaizokupuffball

+0

@Kaizokupuffball Ihre Keyword-Tabelle sollte nur zwei Spalten enthalten: 'companyID' und' key'. Fügen Sie dann für jedes Unternehmen/Schlüsselpaar eine Zeile hinzu. –