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

这假设逗号表示一个值

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

测试一下,让我知道它是怎么回事

于 2013-08-21T18:37:07.137 回答