|
@@ -287,9 +287,30 @@ SELECT * FROM person ORDER by id;
|
|
|
SELECT * FROM person ORDER by date_of_birth;
|
|
|
SELECT * FROM person ORDER by father_name desc;
|
|
|
```
|
|
|
+**Не обязательно** использовать имена полей в `ORDER BY`; можно использовать разные конструкции и функции Mysql, например `RAND()` для случайной выборки.
|
|
|
|
|
|
### `WHERE` и `LIMIT`
|
|
|
|
|
|
+Как вы заметили выше, `WHERE` - очень мощный инструмент, который позволяет строить практически любые условия. Как и в языках программирования, возможно
|
|
|
+использовать логические операции (`OR`, `AND`, `NOT`), операции сравнения и другие выражения.
|
|
|
+
|
|
|
+```mysql
|
|
|
+SELECT * FROM person WHERE date_of_birth > "2000-01-01";
|
|
|
+SELECT * FROM person WHERE date_of_birth > "2000-01-01" AND name = 'Ivan';
|
|
|
+SELECT * FROM person WHERE date_of_birth > "2000-01-01" OR name IN ('Petr', 'Vasiliy');
|
|
|
+SELECT * FROM person WHERE id % 2 = 0;
|
|
|
+```
|
|
|
+
|
|
|
+`LIMIT` позволяет получить только часть выборки, именно благодаря этой функции работает пагинация на подавляющем большинстве сайтов:
|
|
|
+```mysql
|
|
|
+SELECT * FROM person LIMIT 1
|
|
|
+```
|
|
|
+выдает одну запись сначала выборки согласно сортировке
|
|
|
+```mysql
|
|
|
+SELECT * FROM person LIMIT 1,2
|
|
|
+```
|
|
|
+выдает две записи начиная со второй записи (пропуская 1 запись от начала) выборки согласно сортировке. Таким образом, `LIMIT N` аналогичен `LIMIT 0,N`
|
|
|
+
|
|
|
### `GROUP BY` и агрегация
|
|
|
|
|
|
### `DISTINCT`
|