我的表包含以下数据:
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
我需要从这个表中提取所有的“代码”,但是只显示一个产品代码一次。
如果存在一个没有公司id的记录,则显示该记录,如果不存在,则显示带有标准描述的记录。
从示例数据开始,如果我想显示公司的文章\u id=1,我希望有以下输出:
ID | company_id | code | description
02 | NULL | XYZU | Standard description XYZU
03 | 1 | CD01 | Custom description CD01 for company 1
你有什么建议要做吗?
谢谢您
1条答案
按热度按时间alen0pnh1#
要按groupby从数据库结果中删除重复项,您应该仅禁用mysql的\u full \u group \u by。不要在mysql中这样做,也不要禁用严格模式!拉威尔自己设置了一些模式。
这是禁用此模式的总体解决方案。
但在拉拉维尔,你也应该尝试另一件事:
去
YouProjectFolder/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php
在文件末尾strict_mode()
只需移除ONLY_FULL_GROUP_BY
fr0m函数中的字符串(我刚刚在一个stackoverflow的帖子里看到了这个解决方案。不幸的是我没有找到那个帖子)