如何在codeigniter中使用mysql substring_index计算JSON格式数据的总和

Posted

技术标签:

【中文标题】如何在codeigniter中使用mysql substring_index计算JSON格式数据的总和【英文标题】:How to calculate sum of JSON formatted data using mysql substring_index in codeigniter 【发布时间】:2019-02-06 03:18:53 【问题描述】:

我有 3 行每个员工 4 月、5 月、6 月的月薪明细。 Payslip_earnings 列以 JSON 格式保存详细信息,例如

"basicpay":40000,"hra":16000,..etc 

在使用 phpmyadmin 单独执行查询时,我可以获取 json 数据变量的总和

sum(substring_index ( substring_index (payslip_earnings,'"basicpay":',-1),'," ',1) ) as basic.

在codeiginter模型页面中选择基本内部时面临空白页面错误/语法错误

$query = $this->db->query("SELECT payslip.payslip_empcode, 
         sum(substring_index ( substring_index (payslip_earnings,'"basicpay":',-1),'," ',1) ) as basic
         FROM payslip LEFT OUTER JOIN employee_official_master ON
         payslip.payslip_empcode=employee_official_master.employee_code 
         WHERE payslip.payslip_fyear = '2018' and  
         payslip.payslip_empcode IN ('MAR015','MAR010') AND 
         ( payslip_month = 'April' OR payslip_month = 'May' OR payslip_month = 'June') 
GROUP BY payslip.payslip_empcode "
           );

如何在 codeigniter 模型页面中实现相同的功能?

【问题讨论】:

观看您的报价,"SELECT... '"basicpay":' 感谢您的建议.. kerbholz 【参考方案1】:
Try this One..
$colname  = '"basicpay":' ;            
         $seperator = ',';  
         $query = $this->db->query("SELECT payslip.payslip_empcode, 
         sum(substring_index (substring_index (payslip.payslip_earnings,'".$colname."',-1),'".$seperator."',1) ) as basicpay
         FROM payslip LEFT OUTER JOIN employee_official_master ON
         payslip.payslip_empcode=employee_official_master.employee_code 
         WHERE payslip.payslip_fyear = '2018' and  
         payslip.payslip_empcode IN ('MAR015','MAR010') AND 
         ( payslip_month = 'April' OR payslip_month = 'May' OR payslip_month = 'June') 
GROUP BY payslip.payslip_empcode "
           );

【讨论】:

以上是关于如何在codeigniter中使用mysql substring_index计算JSON格式数据的总和的主要内容,如果未能解决你的问题,请参考以下文章

如何使用mysql在codeigniter中计算总数

如何在codeigniter中使用ajax在mysql数据库中插入数据?

如何使用codeigniter在mysql几何列中插入多边形点?

我如何在 codeigniter 中编写这个 MYSQL 语句?

如何使用codeigniter显示mysql数据透视表数据

如何使用codeigniter从mysql中获取多个多维数组中的数据?