sql >> Databasteknik >  >> RDS >> Mysql

Varför find_in_set fungerar men IN-klausul

IN accepterar en lista eller parametrar att söka, FIND_IN_SET accepterar en strängparameter som innehåller en kommaseparerad lista:

SELECT  1 IN (1, 2, 3, 4)

SELECT  FIND_IN_SET(1, '1,2,3,4')

Om du försöker använda IN till en kommaseparerad sträng kommer den att behandla den som en enda parameter och matcha den som en helhet:

SELECT  1 IN ('1,2,3,4')

Naturligtvis strängen '1' är inte lika med strängen '1,2,3,4' så frågan ovan returnerar false.



  1. Hur man delar sträng och infogar värden i tabell i SQL Server

  2. PHP MySQL Drop Down Box Fyll i valt värde

  3. Hämta den sista posten i varje grupp - MySQL

  4. Primära nycklar och index i Hive-frågespråk är möjligt eller inte?