Mysql 如何使用json函数对Mariadb中json字段的值求和
在表列中提供以下json字段:Mysql 如何使用json函数对Mariadb中json字段的值求和,mysql,arrays,json,mariadb,Mysql,Arrays,Json,Mariadb,在表列中提供以下json字段: [ { "payment_date":"2016-04-26", "amount":590, "payment_method":"2" }, { "payment_date":"2017-05-01", "amount":208, "payment_method":"4" } ] 我怎么能把所有的金额加起来 我能得到的最远的结果是 SELECT JSON_EXTRACT(`payment_lines
[
{
"payment_date":"2016-04-26",
"amount":590,
"payment_method":"2"
},
{
"payment_date":"2017-05-01",
"amount":208,
"payment_method":"4"
}
]
我怎么能把所有的金额加起来
我能得到的最远的结果是
SELECT JSON_EXTRACT(`payment_lines`, '$[*].amount') FROM tbl
返回:
[590, 208]
我需要得到的是590和208的总和。所以说,在这种情况下,有两行,但可能还有更多
SELECT VERSION();
10.2.6-MariaDB-10.2.6+maria~jessie-log
尝试:
MariaDB[(无)]>选择版本();
+-----------------------+
|版本(|
+-----------------------+
|10.2.6-10.2.6|
+-----------------------+
一行一组(0.00秒)
MariaDB[(无)]>SET@`JSON`:='
'> [
'> {
“>“付款日期”:“2016-04-26”,
“>“金额”:590,
“>“付款方式”:“2”
'> },
'> {
“>”付款日期“:”2017-05-01“,
“>“金额”:208,
“>“付款方式”:“4”
'> }
'> ]';
查询正常,0行受影响(0.00秒)
MariaDB[(无)]>选择
->杰松吉特国际酒店(
->JSON_EXTRACT(@`JSON`,'$[*].amount'),
-> '[+]'
->)`SUM`;
+------+
|总数|
+------+
| 798 |
+------+
一行一组(0.00秒)
看
更新
检查:
MariaDB[(无)]>显示变量,其中'Variable_name`='plugin_dir';
+---------------+------------------------+
|变量名称|值|
+---------------+------------------------+
|plugin_dir |/usr/lib/mysql/plugin/|
+---------------+------------------------+
一行一组(0.00秒)
MariaDB[(无)]>\!ls-1/usr/lib/mysql/plugin/| grep'ha_connect'
哈哈
MariaDB[(none)]>CREATE FUNCTION IF NOT EXISTS jsonget_int返回整数
->SONAME'ha_connect.so';
查询正常,0行受影响(0.00秒)
试试:
MariaDB[(无)]>选择版本();
+-----------------------+
|版本(|
+-----------------------+
|10.2.6-10.2.6|
+-----------------------+
一行一组(0.00秒)
MariaDB[(无)]>SET@`JSON`:='
'> [
'> {
“>“付款日期”:“2016-04-26”,
“>“金额”:590,
“>“付款方式”:“2”
'> },
'> {
“>”付款日期“:”2017-05-01“,
“>“金额”:208,
“>“付款方式”:“4”
'> }
'> ]';
查询正常,0行受影响(0.00秒)
MariaDB[(无)]>选择
->杰松吉特国际酒店(
->JSON_EXTRACT(@`JSON`,'$[*].amount'),
-> '[+]'
->)`SUM`;
+------+
|总数|
+------+
| 798 |
+------+
一行一组(0.00秒)
看
更新
检查:
MariaDB[(无)]>显示变量,其中'Variable_name`='plugin_dir';
+---------------+------------------------+
|变量名称|值|
+---------------+------------------------+
|plugin_dir |/usr/lib/mysql/plugin/|
+---------------+------------------------+
一行一组(0.00秒)
MariaDB[(无)]>\!ls-1/usr/lib/mysql/plugin/| grep'ha_connect'
哈哈
MariaDB[(none)]>CREATE FUNCTION IF NOT EXISTS jsonget_int返回整数
->SONAME'ha_connect.so';
查询正常,0行受影响(0.00秒)
您使用的是哪个版本的MariaDB?.10.2.6-MariaDB-10.2.6+maria~jessie Log您使用的是哪个版本的MariaDB?.10.2.6-MariaDB-10.2.6+maria~jessie Log感谢您的回答。但是我得到了以下错误:#1305-函数tbl.JsonGet_Int不存在
plugin_dir:/usr/lib/mysql/plugin/,ls/usr/lib/mysql/plugin/正确地列出了ha_connect.so/。在运行最后一行之后,如果不存在,则创建函数JsonGet_Int返回整数SONAME'ha_connect.so'代码>它开始工作。。不错!谢谢你的回答。但是我得到了以下错误:#1305-函数tbl.JsonGet_Int不存在
plugin_dir:/usr/lib/mysql/plugin/,ls/usr/lib/mysql/plugin/正确地列出了ha_connect.so/。在运行最后一行之后,如果不存在,则创建函数JsonGet_Int返回整数SONAME'ha_connect.so'代码>它开始工作。。不错!