Toán tử NOT LIKE trong MySQL

Toán tử NOT LIKE trong MySQL
Toán tử NOT LIKE trong MySQL

Chức năng của Toán tử NOT LIKE trong MySQL

Toán tử NOT LIKE trong MySQL được sử dụng trong mệnh để WHERE, nếu vị trí trong cột không chứa chuỗi ký tự đưa vào thì hàng đó sẽ thỏa điều kiện.

Code Toán tử NOT LIKE trong MySQL

Toán tử NOT LIKE không chứa từ khóa trong MySQL

Kiểm tra hàng nào có cột tên không chứa từ khóa "Micro":

select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE '%Micro%';
<?php
   $dbhost = 'localhost';
   $dbuser = 'webmoi_userdata'; // Tên username
   $dbpass = 'IhNRcn9n'; // Mật khẩu
   // Kết nối đến tên username
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   if(! $conn ){
     die('Không kết nối được: ' . mysql_error());
   }
   // Chọn tên database
   mysql_select_db('webmoi_tendata');
   // Xét kiểu tiếng việt 
   mysql_query('SET NAMES "utf8"');
   
   // ten not like '%Micro%'
   echo "<b>ten not like '%Micro%'</b><br>";
   $sql ="select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE '%Micro%'";
   $ketquamot = mysql_query($sql,$conn);
   if(!$ketquamot){
	  die('Không thể lấy dữ liệu: ' . mysql_error());  
   }
   // Dùng vòng lặp để lấy ra từng hàng trong bảng	
	while($row = mysql_fetch_array($ketquamot, MYSQL_ASSOC)){
		 echo "ID: {$row['id']} <br> ".
		 "ID Cha cấp một: {$row['id_cha1']} <br> ".
		 "Hiển thị: {$row['hienthi']} <br> ".
         "Tên sản phẩm: {$row['ten']} <br> ".
         "Giá : {$row['gia']} <br> ".
         "--------------------------------<br>";
   }
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

ten not like '%Micro%'
ID: 1
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure FE12 thương hiệu Đức
Giá : 55000000
--------------------------------
ID: 2
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure TD12 mới nhất
Giá : 44550000
--------------------------------
ID: 3
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn âm thanh nghe nhạc AV01
Giá : 25000000
--------------------------------
ID: 4
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn âm thanh nghe nhạc AV02
Giá : 30000000
--------------------------------

Toán tử NOT LIKE không chứa từ khóa đầu câu trong MySQL

Kiểm tra hàng nào có cột tên không chứa từ khóa "Micro" ở đầu câu:

select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE 'Micro%';
<?php
   $dbhost = 'localhost';
   $dbuser = 'webmoi_userdata'; // Tên username
   $dbpass = 'IhNRcn9n'; // Mật khẩu
   // Kết nối đến tên username
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   if(! $conn ){
     die('Không kết nối được: ' . mysql_error());
   }
   // Chọn tên database
   mysql_select_db('webmoi_tendata');
   // Xét kiểu tiếng việt 
   mysql_query('SET NAMES "utf8"');
   
   // ten not like 'Micro%'
   echo "<b>ten not like 'Micro%'</b><br>";
   $sql ="select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE 'Micro%'";
   $ketquamot = mysql_query($sql,$conn);
   if(!$ketquamot){
	  die('Không thể lấy dữ liệu: ' . mysql_error());  
   }
   // Dùng vòng lặp để lấy ra từng hàng trong bảng	
	while($row = mysql_fetch_array($ketquamot, MYSQL_ASSOC)){
		 echo "ID: {$row['id']} <br> ".
		 "ID Cha cấp một: {$row['id_cha1']} <br> ".
		 "Hiển thị: {$row['hienthi']} <br> ".
         "Tên sản phẩm: {$row['ten']} <br> ".
         "Giá : {$row['gia']} <br> ".
         "--------------------------------<br>";
   }
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

ten not like 'Micro%'
ID: 1
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure FE12 thương hiệu Đức
Giá : 55000000
--------------------------------
ID: 2
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure TD12 mới nhất
Giá : 44550000
--------------------------------
ID: 3
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn âm thanh nghe nhạc AV01
Giá : 25000000
--------------------------------
ID: 4
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn âm thanh nghe nhạc AV02
Giá : 30000000
--------------------------------
ID: 10
ID Cha cấp một: 2
Hiển thị: 1
Tên sản phẩm: AKG Micro D7 S
Giá : 3400000
--------------------------------

Toán tử LIKE không chứa từ khóa cuối câu trong MySQL

Kiểm tra hàng nào có cột tên không chứa từ khóa "AV02" ở cuối câu:

select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE '%AV02';
	<?php
	   $dbhost = 'localhost';
	   $dbuser = 'webmoi_userdata'; // Tên username
	   $dbpass = 'IhNRcn9n'; // Mật khẩu
	   // Kết nối đến tên username
	   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
	   if(! $conn ){
		 die('Không kết nối được: ' . mysql_error());
	   }
	   // Chọn tên database
	   mysql_select_db('webmoi_tendata');
	   // Xét kiểu tiếng việt 
	   mysql_query('SET NAMES "utf8"');
	   
	   // ten not like '%AV02'
	   echo "<b>ten not like '%AV02'</b><br>";
	   $sql ="select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE '%AV02'";
	   $ketquamot = mysql_query($sql,$conn);
	   if(!$ketquamot){
		  die('Không thể lấy dữ liệu: ' . mysql_error());  
	   }
	   // Dùng vòng lặp để lấy ra từng hàng trong bảng	
		while($row = mysql_fetch_array($ketquamot, MYSQL_ASSOC)){
			 echo "ID: {$row['id']} <br> ".
			 "ID Cha cấp một: {$row['id_cha1']} <br> ".
			 "Hiển thị: {$row['hienthi']} <br> ".
			 "Tên sản phẩm: {$row['ten']} <br> ".
			 "Giá : {$row['gia']} <br> ".
			 "--------------------------------<br>";
	   }
	   // Đóng kết nối database
	   mysql_close($conn);
	?>

Kết quả:

ten not like '%AV02'
ID: 1
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure FE12 thương hiệu Đức
Giá : 55000000
--------------------------------
ID: 2
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure TD12 mới nhất
Giá : 44550000
--------------------------------
ID: 3
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn âm thanh nghe nhạc AV01
Giá : 25000000
--------------------------------
ID: 6
ID Cha cấp một: 2
Hiển thị: 1
Tên sản phẩm: Micro Shure SM58-LC
Giá : 2700000
--------------------------------
ID: 7
ID Cha cấp một: 2
Hiển thị: 1
Tên sản phẩm: Micro AKG D7 S
Giá : 3400000
--------------------------------
ID: 10
ID Cha cấp một: 2
Hiển thị: 1
Tên sản phẩm: AKG Micro D7 S
Giá : 3400000
--------------------------------

Toán tử LIKE không bằng trong MySQL

Kiểm tra hàng nào có cột tên không bằng với từ khóa hay không (không giống nhau 100% chứ không phải không chứa):

select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE 'Dàn âm thanh nghe nhạc AV01';
	<?php
	   $dbhost = 'localhost';
	   $dbuser = 'webmoi_userdata'; // Tên username
	   $dbpass = 'IhNRcn9n'; // Mật khẩu
	   // Kết nối đến tên username
	   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
	   if(! $conn ){
		 die('Không kết nối được: ' . mysql_error());
	   }
	   // Chọn tên database
	   mysql_select_db('webmoi_tendata');
	   // Xét kiểu tiếng việt 
	   mysql_query('SET NAMES "utf8"');
	   
	   // ten not like 'Dàn âm thanh nghe nhạc AV01'
	   echo "<b>ten not like 'Dàn âm thanh nghe nhạc AV01'</b><br>";
	   $sql ="select hienthi,ten,id,gia,id_cha1 from tb_sanpham where hienthi=1 and ten NOT LIKE 'Dàn âm thanh nghe nhạc AV01'";
	   $ketquamot = mysql_query($sql,$conn);
	   if(!$ketquamot){
		  die('Không thể lấy dữ liệu: ' . mysql_error());  
	   }
	   // Dùng vòng lặp để lấy ra từng hàng trong bảng	
		while($row = mysql_fetch_array($ketquamot, MYSQL_ASSOC)){
			 echo "ID: {$row['id']} <br> ".
			 "ID Cha cấp một: {$row['id_cha1']} <br> ".
			 "Hiển thị: {$row['hienthi']} <br> ".
			 "Tên sản phẩm: {$row['ten']} <br> ".
			 "Giá : {$row['gia']} <br> ".
			 "--------------------------------<br>";
	   }
	   // Đóng kết nối database
	   mysql_close($conn);
	?>

Kết quả:

ten not like 'Dàn âm thanh nghe nhạc AV01'
ID: 1
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure FE12 thương hiệu Đức
Giá : 55000000
--------------------------------
ID: 2
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn karaoke gia đình KTreasure TD12 mới nhất
Giá : 44550000
--------------------------------
ID: 4
ID Cha cấp một: 1
Hiển thị: 1
Tên sản phẩm: Dàn âm thanh nghe nhạc AV02
Giá : 30000000
--------------------------------
ID: 6
ID Cha cấp một: 2
Hiển thị: 1
Tên sản phẩm: Micro Shure SM58-LC
Giá : 2700000
--------------------------------
ID: 7
ID Cha cấp một: 2
Hiển thị: 1
Tên sản phẩm: Micro AKG D7 S
Giá : 3400000
--------------------------------
ID: 10
ID Cha cấp một: 2
Hiển thị: 1
Tên sản phẩm: AKG Micro D7 S
Giá : 3400000
--------------------------------

Ứng dụng Toán tử NOT LIKE trong truy vấn MySQL

Trong thực tế, NOT LIKE thường được dùng để loại bỏ những bản ghi chứa một giá trị hoặc mẫu ký tự nhất định. Khi cần lọc dữ liệu theo nhiều tiêu chí, toán tử này có thể kết hợp với các điều kiện khác để tạo ra truy vấn rõ ràng và linh hoạt hơn.

Kết hợp NOT LIKE với AND và OR

AND phù hợp khi tất cả điều kiện đều phải được thỏa mãn, còn OR dùng khi chỉ cần một trong các điều kiện đúng. Khi kết hợp nhiều toán tử, nên dùng dấu ngoặc để xác định rõ thứ tự kiểm tra và tránh cho kết quả không đúng với mục đích lọc.

SELECT * FROM products
WHERE name NOT LIKE '%demo%'
AND name NOT LIKE '%test%';

Truy vấn trên chỉ lấy những sản phẩm có tên không chứa demo và cũng không chứa test. Đây là cách hữu ích để loại bỏ nhiều mẫu dữ liệu không mong muốn cùng lúc.

Với OR, cần xác định kỹ điều kiện vì một bản ghi có thể vẫn được trả về nếu chỉ cần một nhánh điều kiện đúng. Khi biểu thức phức tạp, việc nhóm điều kiện bằng dấu ngoặc giúp truy vấn dễ đọc và dễ kiểm soát hơn.

Lọc dữ liệu với nhiều điều kiện NOT LIKE

Khi cần loại trừ nhiều từ khóa, có thể sử dụng nhiều điều kiện NOT LIKE nối tiếp nhau bằng AND. Cách này phù hợp với các trường hợp như bỏ qua sản phẩm thử nghiệm, nội dung mẫu hoặc những dữ liệu không muốn xuất hiện trong kết quả.

SELECT * FROM articles
WHERE title NOT LIKE '%test%'
AND title NOT LIKE '%demo%'
AND title NOT LIKE '%sample%';

Mỗi điều kiện sẽ tiếp tục thu hẹp tập kết quả. Vì vậy, càng thêm nhiều điều kiện NOT LIKE, phạm vi dữ liệu được giữ lại càng nhỏ.

Loại trừ nhiều nhóm dữ liệu trong cùng truy vấn

Trong một số truy vấn, việc loại trừ không chỉ dựa trên một cột mà còn phụ thuộc vào nhiều nhóm dữ liệu. Có thể kết hợp NOT LIKE với các điều kiện khác để chỉ giữ lại những bản ghi đáp ứng đúng yêu cầu.

SELECT * FROM customers
WHERE name NOT LIKE '%test%'
AND email NOT LIKE '%example%';

Ví dụ này loại bỏ khách hàng có tên chứa test hoặc địa chỉ email chứa example. Cách xây dựng điều kiện như vậy giúp truy vấn tập trung vào dữ liệu thực tế thay vì phải xử lý các bản ghi không cần thiết sau khi lấy từ MySQL.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Toán tử NOT LIKE trong MySQL.

Tải file database .sql về nếu muốn kiểm tra hoặc thực hành Tải về.

  • 0 Bình luận
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Toán tử NOT LIKE trong MySQL
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !