Mysql
 sql >> база данни >  >> RDS >> Mysql

UPDATE Синтаксис с ORDER BY, LIMIT и множество таблици

Решението е да вложите ORDER BY и LIMIT в клауза FROM като част от присъединяване. Това ви позволява да намерите първо точния ред, който трябва да бъде актуализиран (ta.id), след това да извършите актуализацията.

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';

Съвет към барон Шварц, известен още като Xaprb, за отличната публикация точно по тази тема:http://www.xaprb.com/blog/2006/08/10/how-to-use- поръчка-по-и-ограничение-на-много-таблици-актуализации-в-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. MySQL MariaDB – Заявка с помощта на Temp Table

  2. MySQL - Преобразувайте MM/DD/YY в Unix timestamp

  3. единична фиксирана таблица с множество колони срещу гъвкави абстрактни таблици

  4. Запазете CSV файлове в mysql база данни

  5. Настройване на нов екземпляр на MySQL какво е текущата root парола?