Изучаем sql



Pdf көрінісі
бет236/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   232   233   234   235   236   237   238   239   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

SELECT login_date
> FROM login_history
> ORDER BY login_date DESC
> LIMIT 49,1;
++
| login_date |
++
| 20040702 09:00:00 |
++
1 row in set (0.00 sec)


268
Приложение B
Вооружившись этой информацией, уже можно создать выражение
delete
, удаляющее все строки, значение столбца 
login_date
которых
меньше даты, возвращенной запросом:
mysql> 
DELETE FROM login_history
> WHERE login_date < '20040702 09:00:00';
Query OK, 262 rows affected (0.02 sec)
Теперь таблица содержит 50 последних регистраций. Однако MySQL
расширения позволяют достичь тех же результатов с помощью единст
венного выражения 
delete
с блоками 
limit
и 
order
by
. Возвратив исход
ные 312 строк в таблицу 
login_history
, можно выполнить следующее
выражение:
mysql> 
DELETE FROM login_history
> ORDER BY login_date ASC
> LIMIT 262;
Query OK, 262 rows affected (0.05 sec)
Это выражение сортирует строки по возрастанию значений столбца
login_date
, затем первые 262 строки удаляются, а 50 самых свежих
строк остаются.
В этом примере для построения блока 
limit 
необходимо было
знать число строк в таблице (312 исходных строк – 50 остав
шихся строк = 262 удалений). Лучше было бы отсортировать
строки в убывающем порядке, указать серверу пропустить пер
вые 50 строк и затем удалить оставшиеся строки:
DELETE FROM login_history
ORDER BY login_date DESC
LIMIT 49, 9999999;
Однако MySQL не обеспечивает возможности применения вто
рого необязательного параметра при использовании блока 
limit
в выражениях 
delete 
или 
update
.
С помощью блоков 
limit
и 
order
by
можно не только удалять, но и об
новлять данные. Например, если банк решает для удержания лояль
ных клиентов добавить по 100 долларов на каждый из десяти самых
старых счетов, можно сделать следующее:
mysql> 


Достарыңызбен бөлісу:
1   ...   232   233   234   235   236   237   238   239   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет