gpt4 book ai didi

mysql更新选择行号

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

我有下一个代码:

SET @rownum=0;
UPDATE product_images AS t, (SELECT @rownum:=@rownum+1 rownum, id, rel
FROM product_images WHERE product_id='227') AS r
SET t.rel = r.rownum
WHERE t.id = r.id

这在 phpmyadmin 中运行良好

但是......下一个代码(女巫实际上是一样的)但是放在php代码中

mysql_query ("
SET @rownum=0;
UPDATE product_images AS t,
(SELECT @rownum:=@rownum+1 rownum, product_images.*
FROM product_images WHERE product_id='$pid') AS r
SET t.rel = r.rownum WHERE t.id = r.id ") or die(mysql_error());

GIVES ME ERROR : “你的 SQL 语法有错误;请检查与你的 MySQL 服务器版本对应的手册,了解在 'UPDATE product_images AS t, (SELECT @rownum:=@ rownum+1 rownum, product_images.* ' 在第 1 行"

请帮忙。谢谢。

最佳答案

这是您尝试同时执行的 2 个查询。这不适用于 mysql_query PHP 方法。

您实际上不需要第一条语句。尝试

UPDATE product_images AS t
JOIN
(
SELECT @rownum:=@rownum+1 rownum, id, rel
FROM product_images
CROSS JOIN (select @rownum := 0) rn
WHERE product_id='227'
) AS r ON t.id = r.id
SET t.rel = r.rownum

即时初始化 @rownum 变量。

Simplified SQLFiddle example

关于mysql更新选择行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805475/

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