[英]sum values in mysql column with comma
我是php初學者,正在嘗試為mysql db表中的特定列進行聚合,但是此列中有逗號分隔的值,因此結果不正確。 這是表列的示例
第1欄
12,345.67
123,456.78
專欄2
12,345.67
123,456.78
第三欄
12,345.67
123,456.78
專欄4
12,345.67
123,456.78
請在下面找到我的代碼,並請教我是否使用解決方案。
<?php
$query=mysql_query("select * from mytable")or die(mysql_error());
while($row=mysql_fetch_array($query)){
?>
<tr>
<td><?php echo $row['column1'] ?></td>
<td><?php echo $row['column2'] ?></td>
<td><?php echo $row['column3'] ?></td>
<td><?php echo $row['column4'] ?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php
$result = mysql_query("SELECT sum(column1 + column2 + column3 + column4) FROM mytable") or die(mysql_error());
while ($rows = mysql_fetch_array($result)) {
?>
<div>
Total: <?php echo $rows['sum(column1 + column2 + column3 + column4)']; ?></div>
<?php }
?>
<?php }
?>
為了使mysql正確運行聚合,您需要指定將被求和的每個字段,而不是使用SELECT *。
例如<?php $query=mysql_query("select Order_Name, SUM(ORDER_VALUE), SUM(ORDER_COUNT) SUM(ORDER_TAX+ORDER_SHIPPING AS 'fees') from mytable...
如果由於CSV源數據中存在逗號而導致聚合不起作用,則您可能需要將數據庫字段設置為正確的類型,如果只希望小數點后兩位,則可能為FLOAT或DOUBLE的地方。
SQL不會以這種方式分配和。
更改選擇
SELECT sum(column1 + column2 + column3 + column4) FROM mytable
至
SELECT sum(column1 + column2 + column3 + column4) AS MYSUM FROM mytable
並回顯$ row ['MYSUM'];
這將以逗號添加一些值:
set @num1 = '222,3039';
set @num2 = '23,444990';
select REPLACE(@num1,',','')+ REPLACE(@num2,',','')
首先,我強烈建議您在數據庫中使用正確的數據類型,但是正如您已經指出的那樣,這是不可能的,最簡單的方法是在現有循環中將字符串解析為雙精度值,並保持運行總計。
$query=mysql_query("select * from mytable")or die(mysql_error());
while($row=mysql_fetch_array($query)){
... existing code ...
# remove the comma, and cast the string to a double
$col1 = (double) str_replace(",", "", $row->column1);
... $col2, $col3 ...
$col4 = (double) str_replace(",", "", $row->column4);
$rowVal = $col1 + $col2 + $col3 + $col4;
# keep a running total
$totalVal += $rowVal;
}
然后,當您以后需要時
# format the total again as you see fit
echo $totalVal; // straight double
echo number_format($totalVal, 2, '.', ','); // thousand separator and decimal point
推薦的
清理數據庫結構,以便可以使用格式正確的mysql。 此外,不建議使用這些函數(mysql_query)等。 查看PDO,准備好的語句。
http://php.net/manual/zh-CN/book.pdo.php-一個很好的配置/參考https://phpdelusions.net/pdo-自我宣傳為唯一的正確指南,因此絕對值得一看
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.