簡體   English   中英

MySQL如何在where子句中使用相同的子查詢更新表

[英]mysql how to update table with same subquery in where clause

以下是我的查詢,我正在嘗試更新Recod,但出現錯誤:

您不能在from子句中指定要更新的目標表

UPDATE user_payment_info
SET
  ammount='110',
  status='failed',
  transaction_id='0'  
 WHERE
   id=(SELECT id
       FROM user_payment_info
       WHERE cust_id='771'
       ORDER BY id DESC
       LIMIT 1)

如何通過從同一表獲取ID更新記錄

我該如何解決這些mysql錯誤

您不能在from子句中指定要更新的目標表

可以幫助我做到這些嗎?

嘗試以下方法:

UPDATE user_payment_info AS t1
INNER JOIN 
(
       SELECT MAX(id) AS MaxId
       FROM user_payment_info
       WHERE cust_id='771'
) AS t2 ON t1.id = t2.MaxId
SET t1.ammount='110',
    t1.status='failed',
    t1.transaction_id='0';

您不必使用子查詢,可以使用UPDATE查詢,其排序為和LIMIT 1:

UPDATE
  user_payment_info
SET
  ammount='110',
  status='failed',
  transaction_id='0'
WHERE
  cust_id='771'
ORDER BY
  id DESC
LIMIT 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM