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

标签 php mysql codeigniter phpmyadmin

我有 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 模型页面中选择 basic 时遇到空白页面错误/语法错误

$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模型页面中实现相同的效果?

最佳答案

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 "
           );

关于php - 如何在codeigniter中使用mysql substring_index计算JSON格式数据的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52109554/

相关文章:

javascript - 以特定格式将 mysql 数据检索到 javascript 时出现问题

mysql - 使用外键约束和索引在 MySql InnoDb 中进行行锁定?

特定日期内的Mysql查询

php - 代码点火器 + Composer

php - 清除浏览器缓存以防止表单重新提交

php - 如何在mongodb中找到数组的最后一项?

php - Zend/PHP : Problem uploading/downloading file to/from MySQL's BLOB field

php - 当我尝试从 CodeIgniter 中的 Controller 函数进行多个模型调用时,出现 MySQL 错误 1054

php - "Cannot convert value to string"取数据时(belongsToMany关系)

mysql - 基于参数的 Rails 自定义查询