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