如何使用FIND_IN_SET,
我拥有的价值是
| Val |
| No, 1, Yes,5, O, 4|
我试过
FIND_IN_SET('No', Val)
获得1
的价值然后我尝试了:
FIND_IN_SET('No', Val) as 'No', FIND_IN_SET('Yes', Val) as ''Yes'
但得到了输出
| No | Yes |
| 1 | 0 |
为什么它突然无法找到'是'在文中?
另一种格式:
| Val |
| No, 1,
Yes,5,
O, 4 |
注意:这不是3行,只是在一行上,而是使用下一行(换行符)作为其他值
答案 0 :(得分:1)
因为字符串中的实际值是' Yes'
(带空格)
这将有效
SELECT FIND_IN_SET(' Yes',Val) FROM test
<强> Fiddle 强>
但如果Yes
是没有空格的第一个值,那么它就无法工作。您可以针对一般情况场景执行此操作(虽然有点贵)
SELECT FIND_IN_SET('Yes',REPLACE(Val," ","")) FROM test
<强> Fiddle 强>
答案 1 :(得分:0)
因为'Yes'
不在该集合中。但是,' Yes'
是。
执行命令
SET @foo = 'No, 1, Yes,5, O, 4';
SELECT
FIND_IN_SET('No', @foo),
FIND_IN_SET('Yes', @foo),
FIND_IN_SET(' Yes', @foo);
结果集:1,0,3
答案 2 :(得分:0)
此函数返回字符串的位置。 您可以通过本教程轻松了解FIND_IN_SET的使用 -
http://phpforweb.info/how-to-use-find_in_set-in-mysql-query/