2012-04-10 93 views
2

我想指望从MySQL查询字符串分隔符,意思是,如果该字段值是 ,如: -Mysql的逗号计数

1,2,3,4,5 

为字符串逗号分开,以便分隔数为4 。

任何想法,那么请分享

感谢,

+0

好像你需要检查是否有一个字符串操作函数将分隔符分割字符串,然后计算结果的部分数量。您应该为n个逗号获得n + 1个零件。 – 2012-04-10 11:18:39

+0

为什么你将分隔字符串存储为值?这只会使数据库性能变得复杂并且降低。你想要做什么? – giorashc 2012-04-10 11:18:39

+0

giorashc - 我们并不总是选择我们必须使用的数据。为什么不问他可以帮助你回答他的问题的东西呢? – 2012-04-10 11:19:37

回答

2

你可以尝试计算字符串的长度和减去字符串没有逗号长度如下:

LENGTH('1,2,3,4,5') - LENGTH(REPLACE('1,2,3,4,5', ',', '')) 
1
select length('1,2,3,4,5') - length(replace('1,2,3,4,5', ',', '')) 
1

我建议如下设计:

Table name : USER_HOBBIES 

| USER_ID | HOBBY_ID | 
    1   1 
    1   2 
    1   3 
    2   2 
    2   4 
    2   5 

现在你可以很容易地计算给定用户的用户的爱好:

SELECT count(*) FROM USER_HOBBIES WHERE USER_ID = <user-id> 

虽然需要另一表格更加清晰,并且在一长串兴趣爱好中,这比使用函数来处理字符串要快得多。

+0

感谢您的建议...... – 2012-04-10 11:46:34