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