Wie zu verwenden LIKE-Klausel für den Vergleich von zwei Spalten in der gleichen Tabelle?
Brauche ich, um zu überprüfen, ob der Wert von Column_1 enthalten ist in den Werten der Column_2. Die Art der Daten, in der 2 Spalten sind:
ID | column1 | column2 |
----------------------------
1 | apple | pear,grape, apple |
2 | pear | apple,grape |
3 | apple | apple |
Die Abfrage zurückgeben soll, um mir die Linien 1 und 3.
Habe ich versucht, so etwas wie dies, funktioniert aber nicht:
SELECT * FROM `table` as C WHERE column_1 LIKE "%C.column_2%"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein Vergleich ist rückwärts. Es sollte sein:
Beachten Sie, dass diese zurück, eine Zeile wie:
Wenn das nicht geeignet ist, sollten Sie nicht verwenden
LIKE
.FIND_IN_SET
übereinstimmen, die Elemente in einer Spalte-separierte Liste, so können Sie verwenden:Jedoch, stellen Sie sicher, dass Sie keine Leerzeichen um das Komma, wenn Sie dies tun.
Wäre es viel besser, wenn Sie normalisiert den Tisch. Komma-separierte Listen sollten nicht verwendet werden, sollten Sie eine viele-zu-viele-relation-Tabelle.