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Предложение работает как условие if на любом языке программирования. Это предложение используется для сравнения данного значения со значением поля, доступным в таблице MySQLi. Если данное значение извне равно доступному значению поля в таблице MySQLi, то он возвращает эту строку.

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

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

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

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

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

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

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

Это будет использовать команду 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:

Вы можете использовать ту же команду 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);
?>

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

Connected successfully
Name: SAI