Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

CẬP NHẬT Cú pháp với ORDER BY, LIMIT và nhiều bảng

Giải pháp là lồng ORDER BY và LIMIT trong mệnh đề FROM như một phần của phép nối. Điều này cho phép bạn tìm hàng chính xác sẽ được cập nhật (ta.id) trước, sau đó xác nhận cập nhật.

UPDATE tableA AS target
    INNER JOIN (
      SELECT ta.id
      FROM tableA AS ta
        INNER JOIN tableB AS tb ON tb.id = ta.user_id
        WHERE tb.username = '$varName'
        ORDER BY ta.datetime DESC
        LIMIT 1) AS source ON source.id = target.id
    SET col1 = '$var';

Lời khuyên dành cho Nam tước Schwartz, còn gọi là Xaprb, vì bài đăng xuất sắc về chủ đề chính xác này: http://www.xaprb.com/blog/2006/08/10/how-to-use- order-by-and-limit-on-multi-table-Updates-in-mysql /



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi MySQL - Bạn có lỗi trong cú pháp SQL của mình

  2. loại trường không xác định solr mặt trời

  3. Sắp xếp SQL theo hai ký tự đầu tiên của các trường

  4. MySQL Short Circuit có hàm IF () không?

  5. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:trong mysql