php - 如何在codeigniter中使用mysql substring_index计算JSON格式数据的总和
问题描述
我有 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 模型页面中实现相同的功能?
解决方案
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 "
);
推荐阅读
- android - Viewpager2 片段在滑动后返回时冻结自定义微调器小部件
- python - 如何使用一个 Python 程序将另一个程序转换为 exe 文件?
- django - 从 REST API 获取数据发送两个请求并且无法进行身份验证
- javascript - 在从 JS 更改为 TS 的自己的文件中找不到 React 上下文
- java - 如何在 webswing 中上传 jar 文件?
- maven-2 - 错误:无法找到或加载主类
- reactjs - TypeError:无法读取 null 的属性“路径名”
- node.js - 当出现错误时,我们是否应该强调返回哪个特定的 HTTP 响应代码?
- sql - oracle 中的 Add_month 问题,我需要生成计费周期
- android - 下载的图像未显示在画廊 android