- 本文地址: https://www.yangdx.com/2019/02/13.html
- 转载请注明出处
MySQL函数FIELD语法定义如下:
- 语法:FIELD(str, str1, str2, str3, ...)
- 解释:返回 str1,str2,str3,... 列表中str的索引(位置)。 如果未找到str,则返回0。如果FIELD()的所有参数都是字符串,则所有参数都将作为字符串进行比较。如果所有参数都是数字,则将它们作为数字进行比较。 否则,参数将进行两次比较。如果str为NULL,则返回值为0,因为NULL无法与任何值进行相等性比较。FIELD()和ELT()互补。
应用举例如下:
mysql> SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff') AS result;
+--------+
| result |
+--------+
| 2 |
+--------+
mysql> SELECT FIELD('Gg', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff') AS result;
+--------+
| result |
+--------+
| 0 |
+--------+
mysql> SELECT FIELD(25, 12, 18, 23, 24, 25, 30) AS result;
+--------+
| result |
+--------+
| 5 |
+--------+
巧妙运用FIELD(),可以给IN()匹配结果进行排序,优先匹配的排在前面,例如:
mysql> SELECT * FROM tb_options WHERE id IN(15, 8, 16, 10) ORDER BY FIELD(id, 15, 8, 16, 10);
+------+-----------------+
| id | name |
+------+-----------------+
| 15 | mailserver_pass |
| 8 | use_smilies |
| 16 | mailserver_port |
| 10 | comments_notify |
+------+-----------------+
快来评论一下吧!
发表评论