从Query Builder Laravel中排除记录

时间:2018-01-15 16:31:23

标签: php mysql sql laravel laravel-query-builder

我的表格包含以下数据:

ID  | company_id   | code   | description
01  |  NULL        | CD01   | Standard description CD01
02  |  NULL        | XYZU   | Standard description XYZU
03  |  1           | CD01   | Custom description CD01 for company 1
04  |  2           | CD01   | Custom description CD01 for company 2

我需要提取所有代码'从此表中可以看到只有一次产品代码。

如果存在包含company_id<>的记录''我表明,如果不存在,我会用标准描述显示记录。

从示例数据开始,如果我想显示company_id = 1的文章,我希望得到这个输出:

ID   | company_id   | code   | description   
02   |  NULL        | XYZU   | Standard description XYZU
03   |  1           | CD01   | Custom description CD01 for company 1

你有建议去做吗?

谢谢

1 个答案:

答案 0 :(得分:2)

要按组删除数据库结果中的重复条目,应该为mysql禁用ONLY_FULL_GROUP_BY。不要在mysql中这样做,也不要禁用严格模式! laravel本身设置了一些模式。

this是禁用此模式的整体解决方案。

但是在laravel你也应该尝试另一件事:

转到YouProjectFolder/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php

在文件fin strict_mode()函数的末尾,只需删除ONLY_FULL_GROUP_BY fr0m函数中的字符串。 (我刚刚在stackoverflow帖子中看到了这个解决方案。不幸的是我没找到帖子)