Klauzula MySQLi - WHERE

Widzieliśmy SQL SELECTpolecenie pobierania danych z tabeli MySQLi. Możemy użyć warunkowej klauzuli o nazwieWHEREklauzula, aby odfiltrować wyniki. Używając klauzuli WHERE, możemy określić kryteria wyboru, aby wybrać wymagane rekordy z tabeli.

Składnia

Oto ogólna składnia SQL polecenia SELECT z klauzulą ​​WHERE do pobierania danych z tabeli MySQLi -

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Możesz użyć jednej lub więcej tabel oddzielonych przecinkami, aby uwzględnić różne warunki za pomocą klauzuli WHERE, ale klauzula WHERE jest opcjonalną częścią polecenia SELECT.

  • Możesz określić dowolny warunek za pomocą klauzuli WHERE.

  • Możesz określić więcej niż jeden warunek za pomocą AND lub OR operatorów.

  • Klauzuli WHERE można używać razem z poleceniem DELETE lub UPDATE SQL również w celu określenia warunku.

Plik WHEREklauzula działa jak warunek if w dowolnym języku programowania. Klauzula ta służy do porównania podanej wartości z wartością pola dostępną w tabeli MySQLi. Jeśli podana wartość z zewnątrz jest równa dostępnej wartości pola w tabeli MySQLi, to zwraca ten wiersz.

Oto lista operatorów, których można używać z WHERE klauzula.

Załóżmy, że pole A ma 10, a pole B 20, a następnie -

Operator Opis Przykład
= Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy. (A = B) nie jest prawdą.
! = Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, warunek staje się prawdziwy. (A! = B) jest prawdą.
> Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy. (A> B) nie jest prawdą.
< Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. (A <B) jest prawdą.
> = Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. (A> = B) nie jest prawdą.
<= Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. (A <= B) jest prawdą.

Klauzula WHERE jest bardzo przydatna, gdy chcesz pobrać wybrane wiersze z tabeli, zwłaszcza gdy używasz MySQLi Join. Połączenia są omówione w innym rozdziale.

Powszechną praktyką jest wyszukiwanie rekordów przy użyciu Primary Key aby wyszukiwanie było szybkie.

Jeśli podany warunek nie pasuje do żadnego rekordu w tabeli, zapytanie nie zwróci żadnego wiersza.

Pobieranie danych z wiersza polecenia

Spowoduje to użycie polecenia SQL SELECT z klauzulą ​​WHERE w celu pobrania wybranych danych z tabeli MySQLi tutorials_inf.

Przykład

Poniższy przykład zwróci wszystkie rekordy z domeny tutorials_inf tabela o nazwie 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>

Chyba że wykonasz LIKEporównanie w ciągu, porównanie nie jest rozróżniane. Możesz rozróżniać wielkość liter w wyszukiwaniu za pomocąBINARY słowo kluczowe w następujący sposób -

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>

Pobieranie danych za pomocą skryptu PHP:

Możesz użyć tego samego polecenia SQL SELECT z WHERE CLAUSE w funkcji PHP mysqli_query().

Przykład

Poniższy przykład zwróci wszystkie rekordy z domeny tutorials_inf tabela o nazwie 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);
?>

Przykładowe wyjście powinno wyglądać następująco:

Connected successfully
Name: SAI