|
|
|
| Добрый день! Помогите пожалуйста разобраться с запросом:
UPDATE katalog SET Show_ord=1
Where priority IN
(SELECT DISTINCT scu, id_photo, Status, priority From katalog k1
WHERE Status=1 AND priority=ALL(
SELECT MIN(priority) FROM katalog k2
WHERE Status=1 AND k2.scu=k1.scu))
#1241 - Operand should contain 1 column(s) - ошибка, и выделяет MIN
Заранее благодарен | |
|
|
|
|
|
|
|
для: soup-bubble
(05.10.2011 в 16:43)
| |
UPDATE katalog SET Show_ord=1
Where priority IN
(SELECT DISTINCT scu, id_photo, Status, priority From katalog k1
WHERE Status=1 AND priority=ALL(
SELECT MIN(priority) FROM katalog k2
WHERE Status=1 AND k2.scu=k1.scu LIMIT 1))
|
| |
|
|
|
|
|
|
|
для: sl1p
(05.10.2011 в 16:49)
| | Спасибо за такой быстрый ответ, но тем не менее после выполнения запроса выдает следующую ошибку
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' | |
|
|
|
|
|
|
|
для: soup-bubble
(05.10.2011 в 16:43)
| | Нет, так не получится. В MySQL запрещено, чтобы обновляемая таблица одновременная была во вложенной таблице. Что сделать хотите? Может можно как-то иначе переформулировать запрос... | |
|
|
|
|
|
|
|
для: cheops
(05.10.2011 в 17:17)
| | День добрый!
Давайте я напишу задачу:
Есть поля с одинаковыми scu, и у них разный приоритет, а так же статус, который может быть 0 или 1. Нужно написать запрос, который выбирает из группы полей с одинаковыми scu одно поле с наименьшим приоритетом, при условии что у него status=1; и у него меняет Show_ord на 1 | |
|
|
|
|
|
|
|
для: soup-bubble
(05.10.2011 в 17:19)
| | Если я правильно понял задачу, запрос должен выглядеть как-то так
UPDATE
(SELECT
scu,
MIN(priority) AS minimum
FROM katalog
GROUP BY scu) AS mink
LEFT JOIN
katalog as k
ON
k.scu = mink.scu AND
k.priority = mink.minimum
SET
k.Show_ord = 1
|
| |
|
|
|
|
|
|
|
для: cheops
(05.10.2011 в 17:40)
| | Я еще не разобрал как он работает - но после теста показывает вроде бы именно тот результат который необходим!
Огромнейшее спасибо!! Счастью моему нет предела1 | |
|
|
|
|
|
|
|
для: cheops
(05.10.2011 в 17:17)
| | Я немного ранее написал запрос, который только выбирает нужные поля (без изменения Show_ord) из таблицы:
select distinct scu, Status, priority from katalog k1 where Status=1 and priority=all(select min(priority) from katalog k2 where Status=1 and k2.scu=k1.scu)
можно ли использовать результаты данного запроса чтобы в этих полях изменить Show_ord на 1? | |
|
|
|
|
|
|
|
для: soup-bubble
(05.10.2011 в 17:36)
| | Про IN и ALL в случае UPDATE можно забыть, если что-то и можно сделать, то только через JOIN.
[поправлено модератором: новый вопрос, про обработчик, выделен в новую тему] | |
|
|
|