2016-07-27 19 views
-4

Ich habe eine Tabelle mit dem Namen myindex.Wie wird eine Spalte mit mehreren Werten ausgewählt, in der sie im angegebenen Feld übereinstimmen?

This is result of my current query

und meine schwache Abfrage lautet wie folgt:

SELECT * FROM `index` WHERE term in ("A","B") 

Aber ich möchte Zeilen nur hervorgehoben.

Meine Sprache ist PHP und Codeigniter. Ich versuche, Suchmaschine zu machen. Das ist meine Wörterbuchtabelle. Wenn Benutzer mehr als ein Schlüsselwort eingeben, sollte ich das entsprechende Ergebnis zurückgeben. zum Beispiel, wenn die Benutzersuche "PHP Array" ich sollte alle "PHP" -Begriff und auch alle "Array" -Begriffe, die sie haben die gleiche doc_id.

+0

Was ist falsch beim Hinzufügen von '... UND doc_id = '4'' oder ähnlich? – Henders

+0

Diese Tabelle wird zum Erstellen eines Wörterbuchs verwendet. Ich verwende keinen konstanten Wert wie 4 –

+0

Ordnen Sie den Wert einfach einer PHP-Variablen wie '$ doc_id = 4;' zu und setzen Sie '$ doc_id' in die Abfrage anstelle von' 4' – Henders

Antwort

0

In Ihrer Anfrage sagen, Sie alle Zeilen auswählen möchten Wich ein A enthalten oder B.

Was ist der Grund, warum Sie diese zwei Zeilen wollen? ist es weil doc_id = 4? in diesem Fall müssen Sie tun:

SELECT * FROM `index` WHERE term in ("A","B") AND `doc_id` = 4 
+0

Ja, vielen Dank . –

+0

Wie kann ich den Variablenwert anstelle von 4 verwenden? Ich möchte, dass alle Begriffe "A" und "B" auf "doc_id" stehen –

+0

In welcher Sprache senden Sie die Abfrage? –

0

Hmmm, ist nicht sicher, wie es funktioniert, aber versuchen Sie dies.

SELECT * FROM `index` WHERE term in ("A","B") AND doc_id = doc_id 

Based in Ihrem desc über die Suche sollte auf die gleiche doc_id ausgeführt werden. Probier mal was passiert ist.

+0

Dies funktioniert, aber ist nicht das genaue Ergebnis wegen MySQL "in" -Klausel. die "in" -Klausel addiert "ODER" zwischen den Werten. Ich möchte etwas wie "in" -Klausel, aber fügen Sie "UND" zwischen den Werten hinzu. –