1

列が 1 つしかないデータベース テーブルがあります。表の各行/セルには、コンマで区切られた多数の値が含まれています。一部のセルには NULL (値なし) が含まれています。すべての行の値の合計数を取得したい。(phpとmysqlを使用)


| | 表 | 表

| | 32,33 |

| | 21 |

| | ヌル |

|45,61,52|

したがって、データの総数は 6 になります。つまり、1 行目に 2 つ、2 行目に 1 つ、4 行目に 3 つです。

4

3 に答える 3

3

値のカウントは、コンマのカウントよりも +1 になります。ただし、列にコンマがない場合は、ゼロにする必要があります。したがって、これは機能します:

SELECT sum(LENGTH('col1') - LENGTH(REPLACE('col1', ',', ''))+1) AS total 
FROM table1 WHERE LENGTH('col1')>0 
于 2013-08-21T18:40:05.330 に答える
1

PHP を使用して配列内のすべての値を抽出し、explodeを 使用して値の総数を取得します。

$i=0;
while(mysqli_num_rows($result) >0)
{
  while($row = mysqli_fetch_array($conn, $result))
  {
    $data_elements = explode(',',$row['data']); // extract all the comma seperated value in array
    $i += count($data_elements); //count them all
  }
}
echo $i; // these are your total number of values

それが役に立ったことを願っています:)

于 2013-08-21T18:48:34.407 に答える
0

これは、コンマが 1 つの値を示していることを前提としています

    SELECT sum(LENGTH('field1') - LENGTH(REPLACE('field1', ',', ''))+1) 
AS comma_sum from table1

これをテストして、どうなるか教えてください

于 2013-08-21T18:37:07.137 に答える