Nem egyszer előfordult már velem, hogy egy olyan mezőben kellett keresni, ahol az id-k vesszővel voltak elválasztva. Körülményes lehet ilyen helyen adatot kinyerni, ugyanis nem lehet simán összehasonlítani. A like és társai szintúgy használhatatlanok, mivel pl. az egyjegyű számok keresése bonyolulttá teszi a kérést.
Az ilyen problémára nyújt megoldást a FIND_IN_SET() függvény. A működése a következő:
A függvény 1-től N-ig ad vissza egy számot, ahol N a string-ben található, vesszővel elválasztott substring-ek. Nyilván, ha nem találja, akkor nullát ad vissza. Ha a függvény második paraméterének SET típusú mező van megadva, akkor a függvény bitműveletek használva hasonlít össze.
Használata:
mysql> SELECT FIND_IN_SET('b', 'a,b,c,d')
-> 2
mysql> SELECT count(*) FROM table WHERE FIND_IN_SET(search, field)