2012-04-10 88 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