sql >> Databasteknik >  >> RDS >> Mysql

MYSQL-sökning genom celler med kommaseparerade värden

Detta är ett tecken på dålig DB-design. Du bör först titta på Databasnormalisering och om du kan ändra strukturen, normalisera den först genom att använda en korsningstabell. Från och med nu kan du använda FIND_IN_SET() för att hitta ditt motsvarande post-id i din kommaseparerade id-kolumn

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

Ändra operatören enligt dina önskemål. Jag har visat exempel med AND-operatören, observera att du måste använda FIND_IN_SET så många gånger som antalet ID du har i din array som du behöver jämföra med din kolumn




  1. Skiftlägeskänslig sökning i Django, men ignorerad i Mysql

  2. Använder Geekbench 3 för att utvärdera databasserverprestanda

  3. Kan inte ansluta till MySQL-servern på 'localhost' (10061) efter installationen

  4. ladda upp flera bildfiler till php mysql-galleriet