sql >> Database teknologi >  >> RDS >> Mysql

MYSQL søgning gennem celler med kommaseparerede værdier

Dette er et tegn på dårligt DB-design, du bør først undersøge Databasenormalisering og hvis du kan ændre strukturen, så normaliser den først ved at bruge en junction-tabel. Fra nu af kan du bruge FIND_IN_SET() for at finde dit tilsvarende post-id i din kommaseparerede id-kolonne

SELECT * FROM table 
WHERE  FIND_IN_SET('id1',column) > 0
AND FIND_IN_SET('id2',column) > 0
AND FIND_IN_SET('id3',column) > 0

Skift operatøren efter dit ønske, jeg har vist eksempel med AND operatør, bemærk at du skal bruge FIND_IN_SET så mange gange som antallet af id'er, du har i dit array, som du skal sammenligne med din kolonne




  1. Database-sikkerhedskopier - Sammenligning af MariaDB Mariabackup og Percona Xtrabackup

  2. Hvorfor får jeg denne SQLSyntaxErrorException:ORA-00933:SQL-kommando blev ikke afsluttet korrekt, når jeg forsøger at udføre denne JDBC-forespørgsel?

  3. PHP - Opret afkrydsningsfelt ved at bruge posterne fra MySQL-datobasen som værdier

  4. Et kig på DBCC CHECKCONSTRAINTS og I/O