作者rls0914 (鮮蚵起司)
看板PHP
標題[請益] MySQL UPDATE 搭配 LIMIT 限制數值會報錯
時間Sat Nov 14 02:47:30 2015
EX. MySQL 資料庫
┌──┬──┬──┐
│no│id│un│
├──┼──┼──┤
│26│aa│10│←修改不同un值
├──┼──┼──┤
│28│aa│10│←修改不同un值
├──┼──┼──┤
│29│aa│12│←修改不同un值
├──┼──┼──┤
│33│aa│13│←修改不同un值
├──┼──┼──┤
│42│bb│12│
├──┼──┼──┤
│48│bb│15│
├──┼──┼──┤
│52│aa│10│←修改不同un值
├──┼──┼──┤
│53│bb│12│
└──┴──┴──┘
我想要用for迴圈,修改id欄位aa的不同un值,
MySQL一值有問題,UPDATE 不能使用 兩個數字 LIMIT限制,似乎只能一個數字 LIMIT一
次修改相同的值,
這樣我該怎麼解決垂直更新aa的un值呢?
試了好幾個方法都沒辦法...
錯誤訊息如下:
UPDATE `test` SET `un`= 18 WHERE `id` = 'aa' LIMIT 0,1;
錯誤 MySQL 回應: #1064 - You have an error in your SQL syntax; check the
manual that corresponds to your MariaDB server version for the right syntax
to use near '1' at line 1
------------------------------------
另外我找到一個似乎可以實現的語法,雖然不會報錯,但把un值都修改相同的值....
這段MySQL到底是什麼意思呢?
UPDATE `test` SET `un`= 18
WHERE `un` IN (
SELECT `un` FROM (
SELECT `un` FROM `test`
ORDER BY `un` ASC
LIMIT 0, 1
) tmp
);
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.216.50
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1447440452.A.FAA.html
1F:推 kerash: update 的 limit 不能接 offset 只能接 row_count 11/14 17:54
3F:→ xdraculax: 看不太懂說,只要修改一筆不是用no當條件就好了? 11/14 22:09
4F:→ MOONRAKER: 對阿 明明就有唯一的no欄位放著不用 11/15 15:49