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

FIND_IN_SET z wieloma wartościami

FIND_IN_SET() może być używany tylko do wyszukiwania pojedynczej wartości na liście oddzielonej przecinkami, nie działa z dwiema listami.

Musisz wywołać to osobno dla każdej wartości.

SELECT * FROM tablename
WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)

Byłoby lepiej, gdybyś znormalizował swój schemat zamiast używać list rozdzielanych przecinkami. Jeśli utworzysz tabelę wiele do wielu z identyfikatorami kategorii, możesz wykonać:

SELECT t1.*
FROM tablename AS t1
JOIN item_categories AS c ON t1.id = c.table_id
WHERE c.category_id IN (12, 13, 15)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak przyciąć wiodące zera z tekstu alfanumerycznego w funkcji mysql

  2. Co to jest nazwa użytkownika/hasło do połączenia w środowisku MySQL?

  3. zaktualizuj dane w div

  4. Jak używać polecenia źródłowego MySQL do importowania dużych plików w systemie Windows?

  5. myisam umieścić blokadę tabeli na stole, nawet gdy mamy do czynienia z zapytaniem „wybierz”?