mysql> SELECT FIND_IN_SET('e','a,b,c,d');
+----------------------------+
| FIND_IN_SET('e','a,b,c,d') |
+----------------------------+
| 0 |
+----------------------------+
1 row in set
mysql> SELECT FIND_IN_SET('b','');
+---------------------+
| FIND_IN_SET('b','') |
+---------------------+
| 0 |
+---------------------+
1 row in set
str和strlist任何一个为NULL值,则返回NULL值;
mysql> SELECT FIND_IN_SET(NULL,'a,b,c,d');
+-----------------------------+
| FIND_IN_SET(NULL,'a,b,c,d') |
+-----------------------------+
| NULL |
+-----------------------------+
1 row in set
mysql> SELECT FIND_IN_SET('b',NULL);
+-----------------------+
| FIND_IN_SET('b',NULL) |
+-----------------------+
| NULL |
+-----------------------+
1 row in set
如果第一个参数str包含英文逗号(,),则函数工作不正常;
mysql> SELECT FIND_IN_SET('b,','a,b,c,d');
+-----------------------------+
| FIND_IN_SET('b,','a,b,c,d') |
+-----------------------------+
| 0 |
+-----------------------------+
1 row in set
expr IN (value,...)
如果expr等于IN列表中的任意值,则返回1;否则返回0;
如果所有的值都是常量,则根据expr的类型进行计算和分类。
如果IN列表全部由常量组成,则IN的速度非常快;
mysql> SELECT 2 IN (0,3,5,7);
+----------------+
| 2 IN (0,3,5,7) |
+----------------+
| 0 |
+----------------+
1 row in set
mysql> SELECT 'wefwf' IN ('wee','wefwf','weg');
+----------------------------------+
| 'wefwf' IN ('wee','wefwf','weg') |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set
IN可以用于compare row constructors;
mysql> SELECT (3,4) IN ((1,2), (3,4));
+-------------------------+
| (3,4) IN ((1,2), (3,4)) |
+-------------------------+
| 1 |
+-------------------------+
1 row in set
mysql> SELECT (3,4) IN ((1,2), (3,5));
+-------------------------+
| (3,4) IN ((1,2), (3,5)) |
+-------------------------+
| 0 |
+-------------------------+
1 row in set
mysql> SELECT NULL IN ('wee','wefwf','weg');
+-------------------------------+
| NULL IN ('wee','wefwf','weg') |
+-------------------------------+
| NULL |
+-------------------------------+
1 row in set