ChatGPT写sql--分组排序并更新mysql

有一张明细表,表里有几万条数据,新增一个字段sort,sort的值希望是按照明细表的外键id:detId,相同外键id的记录  sort字段从1开始排序,累加1。其实用java倒好写,不过我挺好奇用sql语句实现是什么样,我自己当然写不出来,不过可以用gpt,连哄带蒙问了好久,终于给我的代码能达到我想的效果了,下面是代码:

SET @row_number = 0, @current_detID = NULL;
UPDATE yl_customprescriptiondetails AS t1
    JOIN (
        SELECT
            id,
            detID,
            (@row_number := CASE
                                WHEN @current_detID = detID THEN @row_number + 1
                                ELSE 1
                END) AS cfmx_sort,
            (@current_detID := detID) AS dummy
        FROM yl_customprescriptiondetails
        ORDER BY detID
    ) AS t2
    ON t1.id = t2.id
SET t1.cfmx_sort = t2.cfmx_sort;

和gpt提问

问了半天,给的都有问题,不是运行报错,就是结果不对,直到我发了这句:

这东西还得哄着他来,要不然跟他说有错,然后说对不起又把错的给我一遍(ーー;),这次给的代码只有一点问题了,把报错信息告诉他,下一次给的就是正确的了,我本来都心思这次要是还不对,我就用java写了。

这次就是对的了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值