我有一个表,有一列叫做 category
,其中一行(我正在尝试查找)在 '17,1,3'
. 我将运行以下几个查询,并获得概述的结果:
SELECT * FROM firms WHERE FIND_IN_SET(17, category) > 0;
0个结果
SELECT * FROM firms WHERE FIND_IN_SET(1, category) > 0;
1个结果
SELECT * FROM firms WHERE FIND_IN_SET(3, category) > 0;
0个结果
当我搜索的值位于列表的边缘时,为什么它不返回任何结果?这对于较长的列表也是可以重复的,如果我有5个数字,中间的3就可以了,但是外面的2就不行了。谢谢你的帮助。
2条答案
按热度按时间idv4meu81#
就像它会退回所有三个箱子一样
xiozqbni2#
你需要在针的子串周围使用单引号来查找。
尝试:
以及
另外,请注意,在的末尾和开头都有斜杠
category
字符串,它们相互干扰。你得把那些割伤去掉。