gpt4 book ai didi

mysql - 如何将 SQL 查询转换为 Laravel 格式

转载 作者:行者123 更新时间:2023-11-29 09:51:20 25 4
gpt4 key购买 nike

我想将下面的 SQL 编写的查询转换为 laravel 格式。请帮忙

SELECT id, first_name, last_name,email,tazkira_no, COUNT(id) As NoRegister FROM
applicants WHERE is_valid=0 AND is_new =1 GROUP BY
tazkira_no HAVING
COUNT(*) > 1

我尝试的是:

$object = DB::table('applicants')
->select('first_name','last_name','email','tazkira_no')
->groupBy('tazkira_no')
->havingRaw('COUNT(*) > 1')
->get();
return $object;

但不工作并给我错误:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'scors.applicants.first_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select first_name, last_name, email, tazkira_no from applicants group by tazkira_no having COUNT(*) > 1)

最佳答案

当查询具有 group by 子句时,select 中不能有非聚合列(不在 group by 中或未使用 sum、count、group_concat 等聚合的列)

您需要在 mysql 中禁用 only_full_group_by 模式才能使此查询正常工作。奇怪的是,如果它可以在直接在 Mysql 客户端编写的 SQL 中工作,那么考虑到两者都使用相同的 MySQL 服务器和用户,它也应该在 Laravel 中工作。

查看更多信息here

此外,在数据库配置中,通过在 config/database.php 中设置 'strict' => false, 来禁用严格查询

关于mysql - 如何将 SQL 查询转换为 Laravel 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54745511/

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