Heim > Backend-Entwicklung > PHP-Tutorial > 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

不言
Freigeben: 2023-03-01 07:20:01
Original
3469 Leute haben es durchsucht

Beispiel:

id   user_id   
1    2,32,4
2    3,63,2
3    4,62,7
Nach dem Login kopieren

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
Nach dem Login kopieren

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);
Nach dem Login kopieren

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
Nach dem Login kopieren

Tabellenbenutzer

user_id   
2
3
4
6
32   
62
63
Nach dem Login kopieren

Zwischentabelle

product_id   user_id

1               2
1               32
1               4
2               2
2               63
2               3
3               4
3               62
3               7
Nach dem Login kopieren

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]
Nach dem Login kopieren

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

mysql5.7 hat den JSON-Typ

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage