Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
mysql - error 1093 (hy000): you can't specify target table 27.12.05 16:43
Автор: Cyber_Onix Статус: Незарегистрированный пользователь
|
Всем привет
есть следующая проблема - делаю запрос:
update news set sh = '1' where id = (select id from news where sh = '0' order by id limit 1);
Получаю ответ:
ERROR 1093 (HY000): You can't specify target table 'news' for update in FROM clause
Как с этим можно бороться?
|
|
RTFM. в MySQL. Недопустимо в одном запросе читать и менять значения одной и той же таблицы. Это приводит к коллизии. 31.12.05 11:14
Автор: kstati <Евгений Борисов> Статус: Elderman
|
|
|
А такая конструкция вообще имеет право на существование? 27.12.05 18:29
Автор: Yurii <Юрий> Статус: Elderman
|
Думаю MySQL не догадывается, что в скобках получится единственное значение.
Может на два запроса разбить, первый select, а второй update?
|
|
Может вместо id = (select ... написать 27.12.05 17:22
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
|
Может вместо id = (select ... написать
id IN (select...
|
| |
:( 27.12.05 18:05
Автор: Cyber_Onix Статус: Незарегистрированный пользователь
|
> Может вместо id = (select ... написать > id IN (select...
:(
ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
mysql-server-5.0.13
|
| | |
Ну, значит не поддерживает от limit в подзапросах. значит... 27.12.05 18:27
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
|
> ERROR 1235 (42000): This version of MySQL doesn't yet > support 'LIMIT & IN/ALL/ANY/SOME subquery' Ну, значит не поддерживает от LIMIT в подзапросах. Значит находи сначала этот id, сохраняй в переменную, а потом вызывай UPDATE.
|
|
|