gpt4 book ai didi

php - Laravel SQLSTATE[42000] : Syntax error or access violation: 1055 Expression #2

转载 作者:可可西里 更新时间:2023-11-01 07:17:42 29 4
gpt4 key购买 nike

这可能是显而易见的,我可能完全忽略了重点,但我有一个包含多行的表,例如 user_id、site_id,

ldstaff | ld_site
____________________
3 1
3 2
4 1

最初由一位老开发人员编写的 MySQL 查询获取员工 ID 并找到他们的姓名,然后将所有站点连接在一起以生成类似这样的内容。

StaffID | Name | sites
3 Dave 1,2

这个查询最初写成

SELECT `ld_staff` as staffID ,a.name,GROUP_CONCAT(`ld_site`) as sites FROM `lead_distribution` l

LEFT JOIN users a ON a.crm_id = l.ld_staff

WHERE ld_enabled = 1 AND

`account_type` = 1 AND `active` = 1 AND `no_more` = 0 AND network_team > 0 AND renewal_team = 0

GROUP BY `ld_staff`

然而,每当我们尝试将它作为新系统的一部分在 Laravel 中编写以获得相同的结果时,我们都会遇到错误 SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 no无论我们如何尝试篡改查询,它总是会返回到这里。读起来似乎 sql_mode only_full_group_by 不允许这种类型的查询,所以我将 sql_mode 更改为 = ""并且这个错误仍然存​​在。

查询

$data = DB::table('lead_distribution')
->join('users', 'ld_staff', '=', 'users.crm_id')
->select("lead_distribution.ld_staff", 'users.name',
DB::raw("GROUP_CONCAT(`ld_site`) as sites"))
->where('users.account_type', '=', 1)
->where('users.active', '=', 1)
->where('users.no_more', '=', 0)
->where('users.network_team', '>', 0)
->where('users.renewal_team', '=', 0)
->groupBy('lead_distribution.ld_staff')
->get();

最佳答案

@贾辛卡

答案修复了它,我错过它的愚蠢错误。

config/database.php

'strict' => true 更改为 'strict' => false

关于php - Laravel SQLSTATE[42000] : Syntax error or access violation: 1055 Expression #2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39658208/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com