powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как составить один (!) запрос для увеличения минимальных зарплат?
6 сообщений из 6, страница 1 из 1
Как составить один (!) запрос для увеличения минимальных зарплат?
    #39021355
Dimasick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица tabula (id, user, salary). Как одним запросом (!) увеличить зарплату на 10% всем, у кого она самая низкая? Т.е. если самая низкая зарплата (из всех) составит 100 у.е., то всем (!), у кого она равна 100 у.е., нужно заменить ее на 110 у.е.
У меня получается или двумя запросами (сначала узнаем этот самый минимум, а уже потом делаем апдейт), или одним, но только для одного минималиста (а нужно для всех, ведь их может быть несколько).
...
Рейтинг: 0 / 0
Как составить один (!) запрос для увеличения минимальных зарплат?
    #39021382
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimasick,

выполнением запроса update с подзапросами.
...
Рейтинг: 0 / 0
Как составить один (!) запрос для увеличения минимальных зарплат?
    #39021508
Dimasick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, и как именно? Дело в том, что когда я делаю двумя запросами, то первый у меня - это
Код: sql
1.
SET @var = (SELECT `id` FROM `tabula` ORDER BY `salary` ASC LIMIT 1);


а уже во втором идет
Код: sql
1.
UPDATE `tabula` SET `salary`=`salary`*1.1 WHERE `id` = @var


И как их объединить в один?
Я пытался сделать так:
Код: sql
1.
UPDATE `tabula` SET `salary`=`salary`*1.1 WHERE `id` = (SELECT `id` FROM `tabula` ORDER BY `salary` ASC LIMIT 1)


но получаю ошибку
You can't specify target table 'tabula' for update in FROM clause
...
Рейтинг: 0 / 0
Как составить один (!) запрос для увеличения минимальных зарплат?
    #39021627
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конкретно с этой ошибкой можно бороться, используя тупизну мускля:
Код: sql
1.
where id=(select id from (select id from asd order by 1 asc limit 1) t0)


но почему вы выбираете ид, а не минимальную зарплату?
...
Рейтинг: 0 / 0
Как составить один (!) запрос для увеличения минимальных зарплат?
    #39021741
Dimasick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirконкретно с этой ошибкой можно бороться, используя тупизну мускля:
Код: sql
1.
where id=(select id from (select id from asd order by 1 asc limit 1) t0)



Не работает :( Меняет значение только в одной строке, хотя минимальных зарплат несколько (одинаковых).


tanglirно почему вы выбираете ид, а не минимальную зарплату?
А какая разница?
...
Рейтинг: 0 / 0
Как составить один (!) запрос для увеличения минимальных зарплат?
    #39021747
Dimasick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя нет, ВСЕ РАБОТАЕТ, я уже понял, что нужно было не ай-ди брать, а именно зарплату. Ура! Спасибо!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как составить один (!) запрос для увеличения минимальных зарплат?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]