Saat bekerja dengan MariaDB, terkadang Anda perlu mengembalikan semua baris yang tidak berisi angka apa pun.
Secara teknis, angka dapat direpresentasikan dengan kata-kata dan simbol lainnya, tetapi untuk artikel ini "angka" berarti "digit numerik". Jadi, kami menemukan nilai yang tidak mengandung angka numerik.
Contoh
Misalkan kita memiliki tabel bernama Products
dengan data berikut di ProductName
its kolom:
SELECT ProductName
FROM Products;
Hasil:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Kolom ini jelas berisi data karakter, tetapi beberapa baris berisi angka di dalam data karakter tersebut (meskipun tidak disimpan sebagai tipe numerik).
Kita dapat menggunakan kueri berikut untuk mengembalikan hanya baris yang tidak berisi angka numerik:
SELECT ProductName
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';
Hasil:
+--------------------------+ | ProductName | +--------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | +--------------------------+
Seperti yang diharapkan, hanya baris yang tidak berisi angka yang dikembalikan.
Dalam hal ini, kami menggunakan NOT REGEX
berfungsi untuk menemukan semua baris yang cocok dengan suatu pola. Pola ini mencakup semua angka numerik dari 0
ke 9
, ditambah karakter lainnya.
Ini juga bisa ditulis seperti ini:
SELECT ProductName
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');
Hasil:
+--------------------------+ | ProductName | +--------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | +--------------------------+
Keluaran yang sama.