Ich habe eine Tabelle mit 3 Spalten etwas wie unten,Suche Komma Zeichenfolge mit LIKE in mysql getrennt
Expertentisch
id - 1589
name - Jhonny
expert_in - 1,12,8 (Values similar like this)
Die experts_in eine andere Tabelle enthält Fremdschlüssel
experts_in Tabelle
id - 1
expert_in - painting
will ich suchen Experten, die in einigen Jobs Experte sind, während für Experten suchen
SELECT * FROM `experts` WHERE expert_in LIKE 1%
Die obige Abfrage bringt alle Experten mit 11,12,13 ... etc. Ich will nur genaues Wort. Ich weiß, LIKE wird alles bringen. Gibt es einen Weg, dies zu erreichen, ohne die Tabelle zu ändern?
Vielen Dank im Voraus.
Wenn Sie bestimmte Werte wünschen, normalisieren Sie Ihre Daten. Komma-getrennte Wertelisten sorgen für ineffiziente Suchvorgänge und Kludgy-Workrounds. Oder verwenden Sie FIND_IN_SET(), aber es ist bei weitem nicht so effizient wie eine gut normalisierte Datenbank –
Was Sie tun, ist eine schlechte Praxis. Wenn die Beziehung manyToMany von der Expert-Tabelle zur Tabelle expert_in besteht. Sie müssen dritte Tabelle, die Fremdschlüssel aus beiden Tabellen enthalten. –
Ich habe verstanden, das ist eine schlechte Praxis. Aber mein Schicksal sollte ich der Arbeit meines Seniors folgen! –