Heim  >  Artikel  >  Backend-Entwicklung  >  Mehrere durch Kommas getrennte Werte in einem Feld rufen alle IDs ab, die einen bestimmten Wert in diesem Feld der Datentabelle enthalten

Mehrere durch Kommas getrennte Werte in einem Feld rufen alle IDs ab, die einen bestimmten Wert in diesem Feld der Datentabelle enthalten

不言
不言Original
2018-05-24 15:40:433448Durchsuche

Beispiel:

id   user_id   
1    2,32,4
2    3,63,2
3    4,62,7

Nehmen Sie das user_id heraus, das 2 in id enthält, das Ergebnis => 1, 2 (enthält eine separate 2)

  1. Die Like-Methode funktioniert offensichtlich nicht

  2. Kurze und schöne SQL-Anweisung

  3. Siehe das eine im Erdgeschoss. Es wird groß darüber gesprochen, die Feldstruktur zu ändern, aber dies ist derzeit möglicherweise nicht zulässig. Da das gesamte Projekt offen ist, kann es zu unvorhersehbaren Problemen aufgrund von Änderungen in der Feldstruktur kommen, wenn ich an dieser Stelle umziehe und diese Stelle an anderen Stellen aufgerufen wird.

Antwortinhalt:

Geben Sie eine Kastanie:

id   user_id   
1    2,32,4
2    3,63,2
3    4,62,7

Nehmen Sie das user_id heraus, das 2 enthält id , result =》1,2 (enthält eine separate 2)

  1. Die Like-Methode funktioniert offensichtlich nicht

  2. Prägnant und schöne SQL-Anweisung

  3. Ich habe unten jemanden gesehen, der viel gesagt hat über das Ändern der Feldstruktur. Dies ist derzeit möglicherweise nicht zulässig. Da das gesamte Projekt offen ist, kann es zu unvorhersehbaren Problemen aufgrund von Änderungen in der Feldstruktur kommen, wenn ich an dieser Stelle umziehe und diese Stelle an anderen Stellen aufgerufen wird.

SELECT id FROM table WHERE find_in_set('2',user_id);

id user_id
1 ,2,32,4,
2 ,3,63,2,
3 , 4,62,7,

Wenn Sie es so ändern, ist es einfach, es zu tun, und Sie können es tun

Tatsächlich ist es besser, die Zwischentabelle zu teilen

Tabellenprodukt

id      
1    
2   
3

Tabellenbenutzer

user_id   
2
3
4
6
32   
62
63

Zwischentabelle

product_id   user_id

1               2
1               32
1               4
2               2
2               63
2               3
3               4
3               62
3               7

Es wird weiterhin empfohlen, die Tabellenstruktur zu ändern! Das ist wirklich nicht einfach. Oder ändern Sie die Datenspeichermethode wie

id   user_id   
1    [2],[32],[4]
2    [3],[63],[2]
3    [4],[62],[7]

und verwenden Sie Fuzzy-Abfrage. Es wird jedoch weiterhin empfohlen, die Tabellendaten zu ändern

mysql5.7 hat den JSON-Typ

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn