MySQLi - Klauzula LIKE

Widzieliśmy SQL SELECTpolecenie pobierania danych z tabeli MySQLi. Możemy również użyć warunkowej klauzuli o nazwieWHERE klauzulę wyboru wymaganych rekordów.

Klauzula WHERE ze znakiem równości (=) działa dobrze, gdy chcemy uzyskać dokładne dopasowanie. Na przykład, jeśli „name = 'sai'”. Ale może istnieć wymóg, w którym będziemy chcieli odfiltrować wszystkie wyniki, w których nazwa powinna zawierać „johar”. Można to zrobić za pomocą języka SQLLIKE klauzula wraz z klauzulą ​​WHERE.

Jeśli klauzula SQL LIKE jest używana wraz ze znakami%, to będzie działać jak znak meta (*) w systemie UNIX, wyświetlając wszystkie pliki lub katalogi w wierszu polecenia.

Bez znaku% klauzula LIKE jest bardzo podobna do znaku równości wraz z klauzulą ​​WHERE.

Składnia

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

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Możesz określić dowolny warunek za pomocą klauzuli WHERE.

  • Możesz użyć klauzuli LIKE razem z klauzulą ​​WHERE.

  • Możesz użyć klauzuli LIKE zamiast znaku równości.

  • Gdy LIKE zostanie użyte wraz ze znakiem%, będzie działać jak wyszukiwanie metaznaków.

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

  • Klauzula WHERE ... LIKE może być używana wraz z poleceniem DELETE lub UPDATE SQL również w celu określenia warunku.

Korzystanie z klauzuli LIKE w wierszu polecenia

Spowoduje to użycie polecenia SQL SELECT z klauzulą ​​WHERE ... LIKE 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, dla której nazwisko autora kończy się na johar -

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

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf 
   -> WHERE name LIKE '%johar';
+----+-------+
| id | name  |
+----+-------+
|  2 | johar |
+----+-------+
1 row in set (0.00 sec)

mysql>

Używanie klauzuli LIKE wewnątrz skryptu PHP

Możesz użyć podobnej składni klauzuli WHERE ... LIKE w funkcji PHP mysqli_query(). Ta funkcja jest używana do wykonywania polecenia SQL, a później innej funkcji PHPmysqli_fetch_array() można użyć do pobrania wszystkich wybranych danych, jeśli klauzula WHERE ... LIKE jest używana wraz z poleceniem SELECT.

Ale jeśli klauzula WHERE ... LIKE jest używana z poleceniem DELETE lub UPDATE, to dalsze wywołanie funkcji PHP nie jest wymagane.

Przykład

Wypróbuj poniższy przykład, aby zwrócić wszystkie rekordy z tutorials_inf tabela, której nazwa zawiera johar -

<?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 LIKE "%johar%"';
   $result = mysqli_query($conn, $sql);
   $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
   
   printf ("%s \n",$row["name"]);
   mysqli_free_result($result);
   mysqli_close($conn);
?>

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

Connected successfully
johar