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

Как да получа ID на последния актуализиран ред в MySQL?

Намерих отговор на този проблем :)

SET @update_id := 0;
UPDATE some_table SET column_name = 'value', id = (SELECT @update_id := id)
WHERE some_other_column = 'blah' LIMIT 1; 
SELECT @update_id;

РЕДАКТИРАНЕ от aefxx

Тази техника може да бъде допълнително разширена, за да извлече идентификатора на всеки ред, засегнат от изявление за актуализиране:

SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;

Това ще върне низ с всички идентификатори, свързани със запетая.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да активирам mysqlnd за php?

  2. Грешка в MySql:Не може да се актуализира таблицата в съхранената функция/тригера, защото вече се използва от израз, който е извикал тази съхранена функция/тригер

  3. Не мога да използвам mysql_* функции след надграждане на PHP

  4. Кой е най-добрият начин за изтриване на стари редове от MySQL непрекъснато?

  5. GROUP_CONCAT() Функция в MySQL