sql >> Databasteknik >  >> RDS >> Mysql

FIND_IN_SET med flera värden

FIND_IN_SET() kan bara användas för att söka efter ett enstaka värde i en kommaseparerad lista, det fungerar inte med två listor.

Du måste anropa det separat för varje värde.

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

Det skulle vara bättre om du normaliserade ditt schema istället för att använda kommaseparerade listor. Om du skapar en många-till-många-tabell med kategori-ID:n kan du göra:

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. Problem med att lagra latitud- och longitudvärden i MySQL-databasen

  2. Infoga Blobs i MySql-databaser med php

  3. SQL CREATE TABLE … SOM SELECT-sats

  4. Hur lagrar jag uuid som nummer?