środa, 19 września 2018

MySQL – klauzula WHERE

MySQL – klauzula WHERE


Używaliśmy polecenia SQL SELECT, aby pobrać dane z tabeli MySQL. Możemy użyć klauzuli WHERE, aby odfiltrować wyniki. Używając tej klauzuli WHERE, możemy określić kryteria wyboru, aby wybrać wymagane rekordy z tabeli.
Składnia
Poniższy blok kodu ma ogólną składnię SQL polecenia SELECT z klauzulą ​​WHERE do pobierania danych z tabeli MySQL -
SELECT pole1, pole2,...poleN nazwa_tabeli1, nazwa_tabeli2...
[WHERE warunek1 [AND [OR]] warunek2.....
·        Możesz użyć jednej lub więcej tabel oddzielonych przecinkami, aby uwzględnić różne warunki, używając 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, używając operatorów AND lub OR.
·        Można użyć klauzuli WHERE wraz z poleceniem DELETE lub UPDATE SQL, aby określić warunek

WHERE klauzula działa jak warunek if w dowolnym języku programowania. Ta klauzula służy do porównywania podanej wartości z wartością pola dostępną w tabeli MySQL. Jeśli podana wartość z zewnątrz jest równa dostępnej wartości pola w tabeli MySQL, to zwraca ten wiersz.
Oto lista operatorów, których można użyć z klauzulą WHERE.
Załóżmy, że pole A zawiera 10, a pole B - 20, a następnie
Operator
Opis
Przykład
=
Sprawdza, czy wartości dwóch argumentów są równe lub nie, jeśli tak, to warunek staje się prawdziwy.
(A = B) nie jest prawdą.
!=
Sprawdza, czy wartości dwóch argumentów są równe lub nie, jeśli wartości nie są równe, warunek staje się prawdziwy.
(A != B) jest prawdziwe.
> 
Sprawdza, czy wartość lewego argumentu jest większa niż wartość prawego argumentu, jeśli tak, to warunek staje się prawdziwy.
(A > B) nie jest prawdą.
< 
Sprawdza, czy wartość lewego argumentu jest mniejsza niż wartość prawego argumentu, jeśli tak, warunek staje się prawdziwy.
(A < B) jest prawdziwe.
>=
Sprawdza, czy wartość lewego argumentu jest większa lub równa wartości prawego argumentu, jeśli tak, to warunek staje się prawdziwy.
(A >= B) nie jest prawdą.
<=
Sprawdza, czy wartość lewego argumentu jest mniejsza lub równa wartości prawego argumentu, jeśli tak, to warunek staje się prawdziwy.
(A <= B) jest prawdziwe.

Klauzula WHERE jest bardzo przydatna, gdy chcesz pobrać wybrane wiersze z tabeli, szczególnie gdy używasz MySQL Join. Połączenia omówione są w innym rozdziale.
Powszechną praktyką jest wyszukiwanie rekordów za pomocą klucza głównego, aby wyszukiwanie było szybsze.
Jeśli podany warunek nie pasuje do żadnego rekordu w tabeli, zapytanie nie zwróci żadnego wiersza.

Pobieranie danych za pomocą wiersza polecenia

Wykorzystamy polecenie SQL SELECT z klauzulą ​​WHERE do pobrania wybranych danych z tabeli MySQL - kurs_tbl.
Przykład
Poniższy przykład zwróci wszystkie rekordy z tabeli kurs_tbl, dla której nazwisko autora to Berg.
root@host# mysql -u root -p password;
Enter password:*******
mysql> use KURS;
Database changed
mysql> select * from kurs_tbl where kurs_author = "Berg";
+---------+------------+-------------+-----------------+
| kurs_id | kurs_title | kurs_author | submission_date |
+---------+------------+-------------+-----------------+
|       1 | JavaScript | Berg        | 2018-02-02      |
+---------+------------+-------------+-----------------+
2 rows in set (0.00 sec)
mysql>

Jeśli porównywanie LIKE nie jest wykonywane na łańcuchu, w porównaniu nie jest rozróżniana wielkość liter. Możesz rozróżnić wielkość liter w wyszukiwarce, używając słowa kluczowego BINARY w następujący sposób:
root@host# mysql -u root -p password;
Enter password:*******
mysql> use KURS;
Database changed
mysql> SELECT * from kurs_tbl \
   WHERE BINARY kurs_author = "berg";
Empty set (0.02 sec)

mysql>

Pobieranie danych za pomocą skryptu PHP

Możesz użyć tego samego polecenia SQL SELECT z WHERE CLAUSE do funkcji PHP mysql_query(). Ta funkcja służy do wykonywania polecenia SQL, a później można użyć innej funkcji PHP mysql_fetch_array() do pobrania wszystkich wybranych danych. Ta funkcja zwraca wiersz jako tablicę asocjacyjną, tablicę liczbową lub obie. Ta funkcja zwraca FALSE, jeśli nie ma więcej wierszy.
Przykład
Poniższy przykład zwróci wszystkie rekordy z tabeli kurs_tbl, dla której nazwa autora to Berg
<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Nie można się połączyć: ' . mysql_error());
   }

   $sql = 'SELECT kurs_id, kurs_title,
               kurs_author, submission_date
               FROM kurs_tbl
               WHERE kurs_author = "Berg"';

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

   if(! $retval ) {
      die('Nie można pobrać danych: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Kurs ID :{$row['kurs_id']}  <br> ".
      "Tytuł: {$row['kurs_title']} <br> ".
      "Autor: {$row['kurs_author']} <br> ".
      "Data : {$row['submission_date']} <br> ".
      "--------------------------------<br>";
   }

   echo "Dane pobrano pomyślnie\n";
   mysql_close($conn);
?>



Brak komentarzy:

Prześlij komentarz