Nếu bạn cần trả lại tất cả các hàng không chứa bất kỳ số nào, thì những điều sau đây có thể hữu ích.
Nói một cách chính xác, các con số có thể được biểu thị bằng các từ và các ký hiệu khác, nhưng đối với bài viết này, “số” chỉ đơn giản có nghĩa là “chữ số”. Vì vậy, chúng tôi đang tìm các giá trị không chứa bất kỳ chữ số nào.
Ví dụ
Giả sử chúng ta có một bảng được gọi là Products
với dữ liệu sau trong ProductName
của nó cột:
SELECT ProductName
FROM Products;
Kết quả:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Left handed screwdriver | | Right handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Smash 2000 Sledge Hammer | | Chainsaw (Includes 5 spare fingers) | | Straw Dog Box | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Cột này chứa dữ liệu ký tự, nhưng một số hàng chứa số trong dữ liệu ký tự đó (ngay cả khi chúng không được lưu trữ dưới dạng số).
Chúng tôi có thể sử dụng truy vấn sau để chỉ trả về những hàng không chứa bất kỳ chữ số nào:
SELECT ProductName
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';
Kết quả:
+--------------------------+ | ProductName | +--------------------------+ | Left handed screwdriver | | Right handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | +--------------------------+
Như mong đợi, chỉ những hàng không chứa số mới được trả về.
Ở đây, chúng tôi đã sử dụng NOT REGEX
của MySQL chức năng để tìm tất cả các hàng phù hợp với một mẫu. Mẫu bao gồm tất cả các chữ số từ 0
thành 9
, cộng với bất kỳ ký tự nào khác.
Điều này cũng có thể được viết như thế này:
SELECT ProductName
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');
Kết quả:
+--------------------------+ | ProductName | +--------------------------+ | Left handed screwdriver | | Right handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | +--------------------------+