Обмен значениями внутри одной таблицы с MySQL - PullRequest
0 голосов
/ 06 сентября 2011

У меня действительно странная ситуация.Мне нужно поменять значение столбца между двумя строками в одной таблице, поэтому я использую (где s1 и s2 - две строки)

UPDATE table s1, table s2 
SET s1.data = s2.data, s2.data = @temp
WHERE @temp:=s1.data AND [some expression that works]
ORDER BY s2.data ASC
LIMIT 1

Это создаетошибка Неправильное использование UPDATE и ORDER BY

Я просто хочу найти запись из таблицы, у которой есть ближайшая меньшая запись data к исходной записи и подкачкадва значения.Выполнение

SELECT * FROM table s1, table s2
WHERE [the same expression that works]
ORDER BY s2.data ASC
LIMIT 1

Возвращает таблицу с необходимыми результатами, но упомянутое ОБНОВЛЕНИЕ не работает.Что я не так делаю?

1 Ответ

0 голосов
/ 06 сентября 2011

Видимо, то, что я хочу, не может быть сделано в одном запросе MySQL .Я закончил тем, что сделал 3 запроса, один SELECT и два UPDATE для каждого из столбцов и использование временных переменных в PHP .Я предполагаю, что это также может быть сделано в трех последовательных запросах в MySQL с MySQL временными переменными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...