2.9: Выбор конкретных строк из таблицы MySQL
Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Выбор конкретных строк из таблицы MySQL
Вы можете выбирать только специфические строки из вашей таблицы. Например, если вы хотите проверить изменение, которое произвели в дате рождения собаки Bowser, выберите запись для Bowser:
mysql> SELECT * FROM pet WHERE name = «Bowser»;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Bowser | Diane | собака | m | 1989-08-31 | 1995-07-29 |
+----------+--------+---------+------+------------+------------+
Вывод подтверждает, что год теперь правильно зарегистрирован как 1989, а не 1998.
Сравнения строк обычно не чувствительны к регистру, так что вы можете определять имя как bowser, BOWSER или как хотите. Результат запроса всегда будет тот же самый.
Вы можете определять произвольные условия в любом столбце, не только на паше. Например, если вы хотите знать, какие животные родились после 1998 года, проверьте столбец birth:
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1";
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Chirpy | Gwen | птичка | f | 1998-09-11 | NULL |
| Puffball | Diane | хомяк | f | 1999-03-30 | NULL |
+----------+--------+---------+------+------------+------------+
Вы можете объединять условия, например, найти самок собак:
mysql> SELECT * FROM pet WHERE species="собака" AND sex="f";
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Buffy | Harold | собака | f | 1989-05-13 | NULL |
+----------+--------+---------+------+------------+------------+
Предшествующий запрос использует логический оператор AND (И). Имеется также оператор OR (ИЛИ). Например, найдем всех змей и птичек в нашей таблице:
mysql> SELECT * FROM pet WHERE species="змея" OR species="птичка";
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Chirpy | Gwen | птичка | f | 1998-09-11 | NULL |
| Whistler | Gwen | птичка | NULL | 1997-12-09 | NULL |
| Slim | Benny | змея | m | 1996-04-29 | NULL |
+----------+--------+---------+------+------------+------------+
Операторы AND и OR могут быть перемешаны. Тут стоит использовать круглые скобки, чтобы указать, как именно условия должны быть сгруппированы:
mysql> SELECT * FROM pet WHERE (species = "кошка" AND sex = "m") OR
-> (species = "собака" AND sex = "f");
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Claws | Gwen | кошка | m | 1994-03-17 | NULL |
| Buffy | Harold | собака | f | 1989-05-13 | NULL |
+----------+--------+---------+------+------------+------------+