我有下一个代码:
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
Run Code Online (Sandbox Code Playgroud)
这在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());
Run Code Online (Sandbox Code Playgroud)
GIVES ME ERROR:""你的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'UPDATE product_images AS t附近使用正确的语法(SELECT @rownum:= @ rownum + 1 rownum,product_images.*'at line 1""
请帮忙.谢谢.
jue*_*n d 17
这些是您尝试一次执行的2个查询.这不适用于mysql_queryPHP方法.
你实际上不需要第一个语句.尝试
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
Run Code Online (Sandbox Code Playgroud)
在运行中初始化@rownum变量.