sql >> Database >  >> RDS >> Mysql

Waarom find_in_set werkt, maar IN-clausule

IN accepteert een lijst of parameters om te zoeken, FIND_IN_SET accepteert een stringparameter die een door komma's gescheiden lijst bevat:

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

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

Als u probeert IN . toe te passen naar een door komma's gescheiden tekenreeks, zal het deze als een enkele parameter behandelen en als geheel overeenkomen:

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

Natuurlijk, de string '1' is niet gelijk aan de string '1,2,3,4' dus de bovenstaande zoekopdracht retourneert false.



  1. Oracle Sequence nextval springt nummer heen en weer

  2. Hoe de LIKE-operator van SQLite hoofdlettergevoelig te maken?

  3. Tekortkomingen van mysql_real_escape_string?

  4. Hoe debuggen Lock wacht time-out overschreden op MySQL?