我的表有这些数据:
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
你有什么建议吗?
谢谢
最佳答案
要按组从数据库结果中删除重复条目,您应该禁用 mysql 的 ONLY_FULL_GROUP_BY 。不要在 mysql 中这样做,也不要禁用严格模式! laravel 本身设置了一些模式。
this是禁用此模式的整体解决方案。
但是在 Laravel 中你还应该尝试另一件事:
转到YouProjectFolder/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php
在文件末尾找到 strict_mode()
函数,然后从函数内的字符串中删除 ONLY_FULL_GROUP_BY
。
(我刚刚在 stackoverflow 帖子中看到了这个解决方案。不幸的是我没有找到那个帖子)
关于php - 从查询生成器 Laravel 中排除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267076/