/ /私のSQLをカンマで区切る方法は? - mysql

どのようにカンマ私のSQLを使用して値を区切るには? - mysql

私のテーブルの列には、このような行があります1001,1002、1003、カンマで区切られています。各列に1つ以上のカンマ区切りの値が存在することがあります。これらのコンマ区切りの値の合計がテーブルに必要です。例えば、私のテーブルが1001,1002,1003,1004の2つの行を持ち、1001,1005の別のテーブルがある場合、出力は6、つまり4 + 2になります。親切に助けて

回答:

回答№1の場合は3

mysqlにcharを数える関数はありません起こる。カンマをすべて置き換えることはできません。カンマの数を与えるlenghtsの差を計算します。これは値の数より1少ない数です。

select
( LENGTH(col1) - LENGTH(REPLACE(col1, ",", "")) + 1 )
+ ( LENGTH(col2) - LENGTH(REPLACE(col2, ",", "")) + 1 )
AS valCount
from T;

明白にはテストしませんでしたが、少なくともそれと非常に似た何かが仕事をします。

replace() 長さ()


回答№2については2

試してください:

SELECT SUM(LEN(ColumnName) - LEN(REPLACE(ColumnName, ",", ""))) FROM TableName

回答№3の場合は1

これは、「あまりにも多い」という仕事の一つです。 たくさん データベース自体に比べてデータベースにアクセスするサーバー側のスクリプトが容易になります。コンマで区切られた文字列を既に配列に割り当てていると仮定すると(ここで、 $array[1] 行1の文字列と等しい:

$array = array("1001, 1002, 1003, 1004", "1001, 1005"); // assigned from database
foreach($array as $k => $v){
$numbersInString[$k] = count(explode(", ", $v));
}
echo implode(" + ",$numbersInString);

これは、創造的な解決策(例えば、 ラファエル1984)、MySQLでは、しかし、はるかに簡単に、簡潔に、PHPで実装されているようです。


/> 参考文献:


回答№4の場合は-1

count()関数を使ってみましたか?必要に応じて行を指定できます。

.row[COUNT(name)]

あなたの質問に。あなたのテーブルはどのように見えますか?私はそれがどのように見えるか分かっていればもっと助けることができるかもしれません