sql >> Database >  >> RDS >> Mysql

FIND_IN_SET met meerdere waarden

FIND_IN_SET() kan alleen worden gebruikt om te zoeken naar een enkele waarde in een door komma's gescheiden lijst, het werkt niet met twee lijsten.

Je moet het voor elke waarde apart aanroepen.

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

Het zou beter zijn als u uw schema zou normaliseren in plaats van door komma's gescheiden lijsten te gebruiken. Als u een veel-op-veel-tabel maakt met de categorie-ID's, kunt u het volgende doen:

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. Hoe de sortering van een database in SQL Server (T-SQL) te tonen

  2. SqlDataSourceEnumerator.Instance.GetDataSources() kan lokale SQL Server 2008-instantie niet vinden

  3. Vind rijen met meerdere dubbele velden met Active Record, Rails &Postgres

  4. MYSQL onjuist DATETIME-formaat