ตามโค้ดนี้ถ้ามีซ้ำกันมันจะแสดงออกมาหมดแต่ผมต้องการค่าล่าสุดอย่างเดียวเลยจะใช้ ORDER BY id DESC LIMIT 0,1 แต่ใส่แล้วมันไม่ได้ครับ รบกวนหน่อยนะครับ ขอบคุณมากครับ
Code
UPDATE test,down SET test.status=1 WHERE down.sp='spt' AND down.um = test.um
update test set status=1 where id=(select id from test where um='xxx' order by id desc limit 1)
หรือ
update test set status=1 where id=(select max(id) from test where um='xxx')
ตอบคุณ Chaidhanan ขึ้นแบบนี้ครับ
#1093 - You can't specify target table 'user' for update in FROM clause
UPDATE user,log SET log.status=1 WHERE log.id = (SELECT MAX(log.id) FROM log,user WHERE log.transaction='XXXXXXXXXX' AND user.username = log.username)
#1093 - You can't specify target table 'log' for update in FROM clause
update log set status=1 where id=(select id from log where transaction='XXXXXXXXXX' order by id desc limit 1)
ตอบคุณ Unidentifier ลองแล้วครับขึ้นแบบนี้
ขึ้นแบบนี้ #1093 - You can't specify target table 'log' for update in FROM clause
UPDATE log SET log.status=1 WHERE log.id = (SELECT MAX(log.id) FROM log,user WHERE log.transaction='XXXXXXXXXX' AND user.username = log.username)
ตอบคุณ Chaidhanan รบกวนอธิบายนิดนึงครับผมแอบงงแฮะๆ เอาไปแก้ไม่ถูก งงพวก test c d อันไหนคืออันไหน ขออภัยด้วยครับ พอดีมือใหม่ -..-
UPDATE test c,(SELECT id FROM test where um='xxx' ORDER BY id DESC LIMIT 1 ) d
SET c.status = 1 WHERE c.id=d.id
UPDATE test c, # c เป็นชื่อสำหรับ table test ตัว แรกครับ
(SELECT id FROM test where um='xxx' ORDER BY id DESC LIMIT 1 ) d # ตัว d นี้เป็น ชื่อเรียก temp result จาก sub query ในวงเล็บครับ
SET c.status = 1 WHERE c.id=d.id
#1093 - You can't specify target table 'log' for update in FROM clause ทั้งสองแบบ
Code
UPDATE log SET log.status=1 WHERE log.id = (SELECT MAX(log.id) FROM log log,user user WHERE log.transaction='XXXXXXXXXX' AND user.username = log.username)
ละก็
Code
UPDATE log SET log.status=1 WHERE log.id = (SELECT MAX(log.id) FROM log,user WHERE log.transaction='XXXXXXXXXX' AND user.username = log.username)
ผมว่ามันใช้ได้บาง version และ บาง os นะครับ เพราะเดิมผมก็เขียนแบบเดียวกันนี่แหล่ะครับ
ผมนำไปลองบน iis ก็ทำไม่ได้ครับ
เลยไปเช็ค version ดู IIS mysql 5.0.11 แต่บน linux mysql 5.1.14 ครับ