MySQL — предложение WHERE

Мы видели команду SQL SELECT для выборки данных из таблицы MySQL. Мы можем использовать условное предложение, называемое предложением WHERE, для фильтрации результатов. Используя это предложение WHERE, мы можем указать критерии выбора для выбора необходимых записей из таблицы.

Синтаксис

Следующий блок кода имеет общий синтаксис SQL команды SELECT с предложением WHERE для выборки данных из таблицы MySQL:

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Вы можете использовать одну или несколько таблиц, разделенных запятой, для включения различных условий с помощью предложения WHERE, но предложение WHERE является необязательной частью команды SELECT.

  • Вы можете указать любое условие с помощью предложения WHERE.

  • Вы можете указать более одного условия, используя операторы AND или OR .

  • Предложение WHERE можно использовать вместе с SQL-командой DELETE или UPDATE также для указания условия.

Предложение WHERE работает как условие if на любом языке программирования. Это предложение используется для сравнения данного значения со значением поля, доступным в таблице MySQL. Если данное значение извне равно доступному значению поля в таблице MySQL, то он возвращает эту строку.

Вот список операторов, которые можно использовать с предложением WHERE .

Предположим, что поле A содержит 10, а поле B — 20, тогда —

ОператорОписаниеПример
=Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным.(A = B) неверно.
!=Проверяет, равны ли значения двух операндов или нет, если значения не равны, условие становится истинным.(A! = B) верно.
>Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным.(A> B) неверно.
<Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным.(A <B) верно.
> =Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным.(A> = B) неверно.
<=Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным.(A <= B) верно.

Предложение WHERE очень полезно, когда вы хотите получить выбранные строки из таблицы, особенно когда вы используете MySQL Join . Объединения обсуждаются в другой главе.

Обычной практикой является поиск записей с использованием первичного ключа для ускорения поиска.

Если данное условие не соответствует ни одной записи в таблице, запрос не вернет ни одной строки.

Получение данных из командной строки

Это будет использовать команду SQL SELECT с предложением WHERE для извлечения выбранных данных из таблицы MySQL — tutorials_tbl .

Пример

В следующем примере будут возвращены все записи из таблицы tutorials_tbl, автором которой является Sanjay .

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl WHERE tutorial_author = 'Sanjay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      3      | JAVA Tutorial  |      Sanjay     |    2007-05-21   |      
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)

mysql>

Если не выполняется сравнение LIKE для строки, сравнение не чувствительно к регистру. Вы можете сделать свой поиск чувствительным к регистру, используя ключевое слово BINARY следующим образом:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl \
   WHERE BINARY tutorial_author = 'sanjay';
Empty set (0.02 sec)

mysql>

Получение данных с помощью скрипта PHP

Вы можете использовать ту же команду SQL SELECT с УСЛОВИЕМ WHERE в функции PHP mysql_query () . Эта функция используется для выполнения команды SQL, а позже другая функция PHP mysql_fetch_array () может использоваться для получения всех выбранных данных. Эта функция возвращает строку как ассоциативный массив, числовой массив или и то, и другое. Эта функция возвращает FALSE, если строк больше нет.

Пример

В следующем примере будут возвращены все записи из таблицы tutorials_tbl, для которой имя автора — Санджай

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT tutorial_id, tutorial_title, 
      tutorial_author, submission_date
      FROM tutorials_tbl
      WHERE tutorial_author = "Sanjay"';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
      "Title: {$row['tutorial_title']} <br> ".
      "Author: {$row['tutorial_author']} <br> ".
      "Submission Date : {$row['submission_date']} <br> ".
      "--------------------------------<br>";
   } 

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>
Выберите поля, которые будут показаны. Прочие будут скрыты. Перктаскивайте мышкой для изменения порядка полей.
  • Изображение
  • SKU
  • Рейтинг
  • Цена
  • Запасы
  • Доступность
  • В корзину
  • Описание
  • Содержимое
  • Вес
  • Размеры
  • Дополнительная информация
  • Атрибуты
  • Custom attributes
  • Настраиваемые поля
Сравнить
Список желаний 0
Открыть страницу желаний Продолжить покупки