Подзапросы с UPDATE

kud

Постоялец
Регистрация
18 Фев 2009
Сообщения
89
Реакции
11
Кто в курсе как одним запросом сделать что-то вроде:
Код:
UPDATE tablename SET column = 'some_value' WHERE id IN(SELECT id FROM tablename ORDER BY RAND())LIMIT 3000
?
 
Кто в курсе как одним запросом сделать что-то вроде:
Код:
UPDATE tablename SET column = 'some_value' WHERE id IN(SELECT id FROM tablename ORDER BY RAND())LIMIT 3000
?
Не знаю как остальные БД но MySQL будет ругаться. SELECT + UPDATE в 1 запросе не пройдет, придется делить на 2.
 
Код:
UPDATE tablename SET column = 'some_value' WHERE id IN(SELECT id FROM tablename ORDER BY RAND())LIMIT 3000
LIMIT 3000 в не правильном месте стоит, надо так:
Код:
UPDATE tablename SET column = 'some_value' WHERE id IN(SELECT id FROM tablename ORDER BY RAND() LIMIT 3000)
хотя не уверен что и ткой вариант прокатит
 
юзайте другую СУБД, мускул для такого кол-ва данных не подет)
 
MySQL без проблем поддерживает подзапросы в UPDATE, только нельзя обращаться в подзапросе к таблице, которая обновляется.
 
Код:
UPDATE tablename AS t1,
(
SELECT id FROM tablename ORDER BY RAND() LIMIT 3000
) AS t2
SET t1.`column` = 'some_value' 
WHERE t1.id = t2.id
 
Назад
Сверху