我有一个只有1列的数据库表。表中的每一行/单元格都包含许多以逗号分隔的值。一些单元格包含NULL(无值)。我想获得所有行中的数字总数。 (使用php& mysql)
因此,数据总数应为6,即第1行为2,第2行为1。第4排第3位。
答案 0 :(得分:3)
值计数将是+1而不是逗号计数。但是如果列没有逗号,则它应该为零。所以这将有效:
SELECT sum(LENGTH('col1') - LENGTH(REPLACE('col1', ',', ''))+1) AS total
FROM table1 WHERE LENGTH('col1')>0
答案 1 :(得分: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
希望它有所帮助:)
答案 2 :(得分:0)
这假定逗号表示一个值
SELECT sum(LENGTH('field1') - LENGTH(REPLACE('field1', ',', ''))+1)
AS comma_sum from table1
测试一下,让我知道它是怎么回事