MySQL查询字符串只有逗号一次

时间:2017-10-17 12:31:03

标签: mysql

我在其中一个列中有一个表,我用逗号分隔数据,我一直在试图弄清楚如何用MySQL查询我在这个列中检查我的名字只有逗号一旦:

table

SELECT Name, num FROM biology WHERE Name = 'Yossi' AND contains (', ')=1 ;

所以我只得到

table2

谢谢

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)