|
|
|
| В таблице есть поле 'new' в некоторых строках значение 'on' в некоторых 'off'
Как обновить это поле чтобы везде поставилось 'off' кроме последних 20 записей где присутствует 'on' ?
$upd_query = "UPDATE tbl SET new = 'off' WHERE new LIKE 'on'";
|
| |
|
|
|
|
|
|
|
для: Dez
(25.07.2006 в 16:30)
| | В таблице есть поле даты или инкрементный столбец? Дело в том, что записи могут быть расположены в случайном порядке и нужен критерий сортировки. | |
|
|
|
|
|
|
|
для: cheops
(25.07.2006 в 17:41)
| | Есть id | |
|
|
|
|
|
|
|
для: Dez
(25.07.2006 в 23:03)
| | Тогда можно воспользоваться таким запросом
UPDATE tbl SET new = 'off'
WHERE new LIKE 'on'
ORDER BY id DESC
LIMIT NNN
|
где NNN - число записей в таблице - 20. | |
|
|
|
|
|
|
|
для: cheops
(25.07.2006 в 23:41)
| | разве этот скрипт обновит все записи кроме 20 послединх? А не обновит ли он только эти 20 последних? | |
|
|
|
|
|
|
|
для: Dez
(26.07.2006 в 22:31)
| | Если в качестве NNN использовать число записей минус 20, то обновятся все записи кроме полследних 20, так как используется обратная сортировка (ORDER BY ... DESC). | |
|
|
|
|
|
|
|
для: cheops
(26.07.2006 в 23:39)
| |
UPDATE tbl SET new = 'off'
WHERE new LIKE 'on'
ORDER BY id DESC
LIMIT -20
|
Тоесть так? | |
|
|
|