2014-12-03 2 views
0

Теперь я пытаюсь получить наивысшее значение из столбца таблицы, а затем увеличиваю его (+1), а затем обновляю еще один столбец с тем же столбцом до этого числа. Я пишу скрипт в PHP, переменная $ SQL отправляется в MySQL.Таблица обновления MySQL с выбранными данными

$SQL=" 
     UPDATE `router` 
     SET `Line Order`= (SELECT 1 + IFNULL(MAX(`Line Order`), 0) FROM `router`) 
     WHERE `RN`=? 
    "; 
    $stmt = $GLOBALS['mySQLConnection']->prepare($SQL); 
    echo $GLOBALS['mySQLConnection']->error; 

Ошибка: Вы не можете указать целевую таблицу "маршрутизатор для обновления в ЕКЕ Как мы предполагаем сделать это без написания отдельных запросов в PHP

ответ

1

Попробуйте этот запрос:

UPDATE router AS r1 
INNER JOIN (
    SELECT 1 + IFNULL(MAX(`Line Order`), 0) AS new FROM `router`) AS r2 
SET `Line Order` = r2.new 
WHERE `RN` = ? 
+0

Я собираюсь изучить это. Но я копирую и вставляю, и это сработало! – serv92

Смежные вопросы