从查询生成器laravel中排除记录

7qhs6swi  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(294)

我的表包含以下数据:

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

你有什么建议要做吗?
谢谢您

alen0pnh

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的帖子里看到了这个解决方案。不幸的是我没有找到那个帖子)

相关问题