Учебники

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

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

Синтаксис

Вот общий синтаксис SQL команды SELECT с предложением WHERE для извлечения данных из таблицы MySQLi —

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

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

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

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

Вы можете использовать одну или несколько таблиц, разделенных запятой, чтобы включить различные условия, используя предложение WHERE, но предложение WHERE является необязательной частью команды SELECT.

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

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

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

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

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

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

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

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

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

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

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

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

пример

Следующий пример вернет все записи из таблицы tutorials_inf, для которых имя sai

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql>SELECT * from tutorials_inf where name = 'sai';
+----+------+
| id | name |
+----+------+
|  1 | SAI  |
+----+------+
1 row in set (0.00 sec)

mysql>

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

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf \WHERE BINARY name = 'sai';
Empty set (0.02 sec)

mysql>

Извлечение данных с помощью PHP Script:

Вы можете использовать ту же команду SQL SELECT с WHERE CLAUSE в функцию PHP mysqli_query () .

пример

Следующий пример вернет все записи из таблицы tutorials_inf, для которых имя sai

<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'TUTORIALS';
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: ' . mysqli_error());
   }
   echo 'Connected successfully<br>';
   $sql = 'SELECT * from tutorials_inf where name="sai"';
   $result = mysqli_query($conn, $sql);

   if (mysqli_num_rows($result) > 0) {
      while($row = mysqli_fetch_assoc($result)) {
         echo "Name: " . $row["name"]. "<br>";
      }
   } else {
      echo "0 results";
   }
   mysqli_close($conn);
?>

Пример вывода должен быть таким: