我在其中一个列中有一个表,我用逗号分隔数据,我一直在试图弄清楚如何用MySQL查询我在这个列中检查我的名字只有逗号一旦:
SELECT Name, num FROM biology WHERE Name = 'Yossi' AND contains (', ')=1 ;
所以我只得到
谢谢
答案 0 :(得分:1)
您使用FIND_IN_SET()
查找逗号分隔列表包含特定单词的行。
在逗号分隔列表中,没有优雅的方法来计算具有两个元素的行,但实现此目的的一种方法是将字符串的长度与逗号进行比较,并将字符串的长度与删除的逗号进行比较。如果删除所有逗号会将长度缩短1个字符,这意味着只有一个逗号。
这样的事情对你有用:
select *
from your_table
where find_in_set('Yossi',name)
and char_length(name) = (char_length(replace(name,',','')) + 1)