gpt4 book ai didi

php - 在 Laravel 中运行 SQL 删除查询

转载 作者:行者123 更新时间:2023-11-29 03:59:42 25 4
gpt4 key购买 nike

我有一个 SQL 查询:

DELETE n1 
FROM satellites n1
, satellites n2
WHERE n1.id < n2.id
AND n1.norad_cat_id = n2.norad_cat_id

此查询的作用是删除具有相同 norad_cat_id 的行只留下一个最高的 id .我不知道我的 SQL 查询是否正确,但我必须看看。

在 Laravel 中运行原始 SQL 查询时,我有点卡住了。从此文档 (https://laravel.com/docs/5.4/database#running-queries) 中,您可以看到您有几个运行查询的选项:

DB::update('SQL QUERY HERE');

DB::delete('SQL QUERY HERE');

DB::statement('SQL QUERY HERE');

DB::select( DB::raw('SQL QUERY HERE'));

在我的例子中,我试图删除重复的行,同时只留下 id 最高的行.什么 Laravel DB声明我运行是为了达到我想要的结果还是根本不重要?

编辑:@MasudMiah 的 SQL 查询

delete satellites
from satellites
inner join (
select max(id) as lastId, norad_cat_id
from satellites
group by norad_cat_id
having count(*) > 1) duplic on duplic.norad_cat_id = satellites.norad_cat_id
where satellites.norad_cat_id < duplic.lastId;

最佳答案

如果你想直接运行你的 DELETE SQL 查询,你可以使用:

$nrd = DB::delete('SQL QUERY HERE');

它返回受影响/删除的行数。看到这个页面:

http://coursesweb.net/laravel/working-mysql-database#anc_rsq

关于php - 在 Laravel 中运行 SQL 删除查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401442/

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