Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从查询生成器Laravel中排除记录_Php_Mysql_Sql_Laravel_Laravel Query Builder - Fatal编程技术网

Php 从查询生成器Laravel中排除记录

Php 从查询生成器Laravel中排除记录,php,mysql,sql,laravel,laravel-query-builder,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

我的表格包含以下数据:

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的记录,我会显示该记录,如果不存在,我会显示带有标准描述的记录

从示例数据开始,如果我想显示公司的文章_id=1,我希望有以下输出:

ID   | company_id   | code   | description   
02   |  NULL        | XYZU   | Standard description XYZU
03   |  1           | CD01   | Custom description CD01 for company 1
你有什么建议吗


感谢您按分组方式从数据库结果中删除重复条目。您应该仅禁用mysql的“完整”分组方式。不要在mysql中这样做,也不要禁用严格模式!拉威尔自己设置了一些模式

是禁用此模式的总体解决方案

但在拉威尔,你还应该尝试另一件事:

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

在文件fin strict_mode函数的末尾,只需通过fr0m删除函数中的字符串即可。
我刚刚在stackoverflow帖子中看到了这个解决方案。不幸的是,我没有发现,如果要按group by从数据库结果中删除重复条目,您应该只禁用mysql的“完整”组。不要在mysql中这样做,也不要禁用严格模式!拉威尔自己设置了一些模式

是禁用此模式的总体解决方案

但在拉威尔,你还应该尝试另一件事:

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

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

你试过记录吗::whereNull'company\u id'->或where'company\u id',$companyId->groupBy'code'->get;我刚才试过了,但系统返回了一个SQL错误:SELECT list的1055表达式1不在GROUP by子句中,并且包含功能上不依赖GROUP by子句中的列的未聚合列;这与sql\u mode=仅\u full\u group\u by不兼容您是否尝试过记录::whereNull'company\u id'->或where'company\u id',$companyId->groupBy'code'->get;我刚才试过了,但系统返回了一个SQL错误:SELECT list的1055表达式1不在GROUP by子句中,并且包含功能上不依赖GROUP by子句中的列的未聚合列;这与sql\u mode=only\u full\u group\u BY不兼容。我已在:YouProjectFolder/vendor/laravel/framework/src/light/Database/Connectors/MySqlConnector.phpnow中禁用了此模式。请检查sql中是否存在此模式。如果在那里也禁用了group by,则可以使用group by来选择不同的结果。我已在以下位置禁用group by:YouProjectFolder/vendor/laravel/framework/src/Illumb/Database/Connectors/MySqlConnector.phpnow检查sql中是否存在此模式。如果在那里也禁用了group by,则可以使用group by来选择不同的结果。