2013-09-11 3 views
2

Here's the following SQL in SQL Fiddle.Поле обновления при первом входе other_field = значение?

+-----+-----+-------------+ 
| id | rel | content  | 
+-----+-----+-------------+ 
| 1 | 1 | example 1 | 
| 2 | 2 | test 2 oops | 
| 3 | 1 | example 2 | 
| 4 | 2 | test 2  | 
+-----+-----+-------------+ 

Как я могу применить SET content = "test 1" к только первой записиWHERE rel = 2 ORDER BY id ASC, не зная идентификатор, что запись в? Можно ли сделать это без каких-либо подзапросов?

+0

у вас пытается обновление с лимитом 1? –

+0

http://stackoverflow.com/questions/11424861/mysql-update-first-instance-of-a-record –

+0

@DipeshParmar 'JOIN' - это дополнительный запрос, не так ли? –

ответ

3

Предполагая, что «первый» означает, что первая строка, когда результат упорядочен по идентификатору:

update example set content = 'test 1' where rel = 2 order by id limit 1; 
+1

Извините, я предполагал, что каждый будет принимать заказы по id по возрастанию. Я добавил разъяснение к моему вопросу. Кроме того, я не думал, что «UPDATE» и «LIMIT» могут использоваться вместе. Спасибо за ответ. –

+1

Код ошибки: 1221 Неправильное использование UPDATE и ORDER BY –

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