2

MySQLクエリから文字列区切り文字をカウントしたいのですが、フィールド値が次のようになっている場合を意味します:-

 1,2,3,4,5

文字列はコンマで区切られているため、区切り文字の数は4になります。

任意のアイデアを共有してください

ありがとう、

4

3 に答える 3

2

次のように、文字列の長さからカンマなしの文字列の長さを引いた数を数えることができます。

LENGTH('1,2,3,4,5') - LENGTH(REPLACE('1,2,3,4,5', ',', ''))
于 2012-04-10T11:21:11.493 に答える
1
select length('1,2,3,4,5') - length(replace('1,2,3,4,5', ',', ''))
于 2012-04-10T11:21:59.483 に答える
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>

別のテーブルが必要ですが、それははるかに明確であり、趣味の長いリストでは、これは文字列を操作するための関数を使用するよりもはるかに高速です。

于 2012-04-10T11:44:06.453 に答える