MySQLi - Mệnh đề LIKE

Chúng tôi đã thấy SQL SELECTlệnh tìm nạp dữ liệu từ bảng MySQLi. Chúng ta cũng có thể sử dụng một mệnh đề điều kiện được gọi làWHERE mệnh đề lựa chọn các bản ghi cần thiết.

Mệnh đề WHERE với dấu bằng (=) hoạt động tốt khi chúng ta muốn so khớp chính xác. Giống như if "name = 'sai'". Nhưng có thể có một yêu cầu mà chúng tôi muốn lọc ra tất cả các kết quả mà tên phải chứa "johar". Điều này có thể được xử lý bằng cách sử dụng SQLLIKE mệnh đề cùng với mệnh đề WHERE.

Nếu mệnh đề SQL LIKE được sử dụng cùng với các ký tự%, thì nó sẽ hoạt động giống như một ký tự meta (*) trong UNIX trong khi liệt kê tất cả các tệp hoặc thư mục tại dấu nhắc lệnh.

Không có ký tự%, mệnh đề LIKE rất giống với dấu bằng cùng với mệnh đề WHERE.

Cú pháp

Đây là cú pháp SQL chung của lệnh SELECT cùng với mệnh đề LIKE để tìm nạp dữ liệu từ bảng MySQLi -

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Bạn có thể chỉ định bất kỳ điều kiện nào bằng mệnh đề WHERE.

  • Bạn có thể sử dụng mệnh đề LIKE cùng với mệnh đề WHERE.

  • Bạn có thể sử dụng mệnh đề LIKE thay cho dấu bằng.

  • Khi LIKE được sử dụng cùng với dấu% thì nó sẽ hoạt động giống như tìm kiếm ký tự meta.

  • Bạn có thể chỉ định nhiều điều kiện bằng cách sử dụng AND hoặc là OR các toán tử.

  • Mệnh đề WHERE ... LIKE có thể được sử dụng cùng với lệnh DELETE hoặc UPDATE SQL để chỉ định một điều kiện.

Sử dụng mệnh đề LIKE tại Command Prompt

Điều này sẽ sử dụng lệnh SQL SELECT với mệnh đề WHERE ... LIKE để tìm nạp dữ liệu đã chọn từ bảng hướng dẫn của MySQLi.

Thí dụ

Ví dụ sau sẽ trả về tất cả các bản ghi từ tutorials_inf bảng mà tên tác giả kết thúc bằng 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>

Sử dụng mệnh đề LIKE bên trong PHP Script

Bạn có thể sử dụng cú pháp tương tự của mệnh đề WHERE ... LIKE vào hàm PHP mysqli_query(). Hàm này được sử dụng để thực thi lệnh SQL và sau đó là một hàm PHP khácmysqli_fetch_array() có thể được sử dụng để tìm nạp tất cả dữ liệu đã chọn nếu mệnh đề WHERE ... LIKE được sử dụng cùng với lệnh SELECT.

Nhưng nếu mệnh đề WHERE ... LIKE đang được sử dụng với lệnh DELETE hoặc UPDATE, thì không cần gọi thêm hàm PHP.

Thí dụ

Hãy thử ví dụ sau để trả về tất cả các bản ghi từ tutorials_inf bảng chứa tên 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);
?>

Đầu ra mẫu phải như thế này -

Connected successfully
johar