Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL przeszukuje komórki z wartościami oddzielonymi przecinkami

Jest to oznaka złego projektu bazy danych, którą powinieneś najpierw przyjrzeć się Normalizacja bazy danych a jeśli możesz zmienić strukturę, najpierw znormalizuj ją za pomocą tabeli połączeń ,Od teraz możesz użyć ZNAJDŹ_W_ZESTAWIE() aby znaleźć odpowiedni identyfikator rekordu w kolumnie identyfikatorów oddzielonych przecinkami

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

Zmień operator zgodnie z życzeniem, które pokazałem w przykładzie z operatorem AND, pamiętaj, że musisz użyć FIND_IN_SET tyle razy, ile identyfikatorów masz w swojej tablicy, które musisz porównać z kolumną




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Dlaczego wynik zawsze wynosi 1 w pełnym tekście?

  2. Optymalizacja czasu pobierania MySQL

  3. Dlaczego GRANT UŻYTKOWANIA jest tworzone, gdy po raz pierwszy przyznaję uprawnienia użytkownika?

  4. Mysql, aby wybrać rekord miesięczny, nawet jeśli dane nie istnieją

  5. Zapytanie sumujące MYSQL z warunkiem IF