我在Codeigniter中使用Ignited Tables for Datatables, 我面临的问题是被点燃的表没有对Group Concat的适当支持,因为我使用Group Concat,我得到了MySQL错误。
Error Number: 1111
Invalid use of group function
SELECT `E`.`employee_id`, `E`.`full_name`, `MLD`.`designation_name`, GROUP_CONCAT(DISTINCT MLP.project_title) AS Projects, GROUP_CONCAT(DISTINCT MLST.skill_name) AS EmployeeSkills FROM (`emp_skills` ES) INNER JOIN `employee` E ON `E`.`employee_id`= `ES`.`employee_id` INNER JOIN `ml_skill_type` MLST ON `MLST`.`skill_type_id` = `ES`.`ml_skill_type_id` INNER JOIN `employment` ET ON `ET`.`employee_id` = `E`.`employee_id` INNER JOIN `position_management` PM ON `PM`.`employement_id`=`ET`.`employment_id` AND PM.current=1 INNER JOIN `ml_designations` MLD ON `MLD`.`ml_designation_id`=`PM`.`ml_designation_id` LEFT JOIN `assign_job` AJ ON `AJ`.`employee_id` = `E`.`employee_id` LEFT JOIN `ml_projects` MLP ON `MLP`.`project_id` = `AJ`.`project_id` WHERE (E.full_name LIKE '%s%' OR MLD.designation_name LIKE '%s%' OR GROUP_CONCAT(DISTINCT MLP.project_title) LIKE '%s%' OR GROUP_CONCAT(DISTINCT MLST.skill_name) LIKE '%s%' ) GROUP BY `E`.`employee_id` LIMIT 25
Filename: C:\xampp\htdocs\projects\HR\system\database\DB_driver.php
Line Number: 330
我使用版本0.7的点燃表,但仍然在2.0版我没有看到任何支持组concat,我会更新到2.0版但我得到错误,当我尝试从版本0.7更新到2.0点燃表。
我使用的DataTables库: https://github.com/pakistanihaider/HouseRentSystem/blob/master/application/libraries/Datatables.php
我可以在我的库中修复群组Concat的任何修复以修复数据表中的过滤吗?
github上有一个解决方案,因为之前已经提出过这个问题。但它不是永久的解决方案,就像使用此解决方案一样,过滤器仅适用于group_concats(如果存在于表中),并且其他简单表格未被过滤。
但如果没有小组连续,那就没关系..
现在,如何在group_concat列和简单列上同时使用过滤器。?
刚刚发现如果使用Group_Concat,则总结果和分页存在问题.. :( 我必须使用数据表,因为整个项目是使用数据表构建的。
任何一个熟悉点火表库的人? https://github.com/IgnitedDatatables/Ignited-Datatables/issues/76
答案 0 :(得分:0)
通过不将包含GROUP_CONCAT
的列包含在可搜索的内容来推翻它。
$(document).ready(function() {
$('#your-table').dataTable({
"columnDefs": [{
"bSearchable": false,
"render": function(data, type, row) {
//if you had any rendering
return data;
},
"targets": 3 //column with the group concat
}]
});
});