MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

4 Cara Menemukan Baris yang Mengandung Huruf Besar di MariaDB

Berikut adalah empat opsi untuk mengembalikan baris yang berisi karakter huruf besar di MariaDB.

Contoh Data

Misalkan kita memiliki tabel dengan data berikut:

SELECT c1 FROM t1;

Hasil:

+----------------+
| c1             |
+----------------+
| CAFÉ           |
| Café           |
| café           |
| 1café          |
| eCafé          |
| James Bond 007 |
| JB 007         |
| 007            |
| NULL           |
|                |
| É              |
| É 123          |
| é              |
| é 123          |
| ø              |
| Ø              |
+----------------+

Kita dapat menggunakan metode berikut untuk mengembalikan baris yang berisi huruf besar.

Opsi 1:Bandingkan dengan Kelas Karakter POSIX

Kita dapat menggunakan REGEXP operator untuk melakukan pencocokan pola ekspresi reguler.

Opsi sederhana adalah membandingkan kolom kita dengan [:upper:] Kelas karakter POSIX:

SELECT c1 FROM t1
WHERE c1 REGEXP '[[:upper:]]';

Hasil:

+----------------+
| c1             |
+----------------+
| CAFÉ           |
| Café           |
| eCafé          |
| James Bond 007 |
| JB 007         |
| É              |
| É 123          |
| Ø              |
+----------------+

RLIKE adalah sinonim untuk REGEXP , jadi kita bisa mengganti REGEXP dengan RLIKE untuk mendapatkan hasil yang sama:

SELECT c1 FROM t1
WHERE c1 RLIKE '[[:upper:]]';

Opsi 2:Bandingkan dengan LOWER() String

Pilihan lain adalah dengan menggunakan LOWER() fungsi untuk membandingkan nilai asli dengan ekuivalen huruf kecilnya:

SELECT c1 FROM t1
WHERE BINARY LOWER(c1) <> BINARY c1;

Hasil:

+----------------+
| c1             |
+----------------+
| CAFÉ           |
| Café           |
| eCafé          |
| James Bond 007 |
| JB 007         |
| É              |
| É 123          |
| Ø              |
+----------------+

Dengan menggunakan tidak sama dengan (<> ) operator (sebagai alternatif, Anda dapat menggunakan != bukannya <> jika Anda mau), kami hanya mengembalikan baris yang berbeda dengan persamaan huruf kecilnya. Alasan kami melakukan ini adalah karena, jika suatu nilai sama dengan ekuivalen huruf kecilnya, maka itu adalah huruf kecil untuk memulainya (dan kami tidak ingin mengembalikannya).

Secara default, MariaDB melakukan pencarian case-insensitive, jadi saya menggunakan BINARY operator untuk mendapatkan penelusuran peka huruf besar/kecil.

Ini juga dapat dilakukan seperti ini:

SELECT c1 FROM t1
WHERE BINARY(LOWER(c1)) <> BINARY(c1);

Opsi 3:Bandingkan dengan Karakter Sebenarnya

Pilihan lainnya adalah dengan menggunakan REGEXP operator dengan pola ekspresi reguler yang secara eksplisit menyertakan setiap karakter huruf besar yang ingin kita cocokkan:

SELECT c1 FROM t1
WHERE BINARY c1 REGEXP BINARY '[ABCDEFGHIJKLMNOPQRSTUVWXYZ]';

Hasil:

+----------------+
| c1             |
+----------------+
| CAFÉ           |
| Café           |
| eCafé          |
| James Bond 007 |
| JB 007         |
+----------------+

Kali ini lebih sedikit baris yang dikembalikan daripada di contoh sebelumnya. Itu karena saya tidak menentukan karakter seperti É dan Ø , yang dikembalikan dalam contoh sebelumnya. Hasil kami memang mengandung É tetapi baris itu hanya dikembalikan karena juga berisi karakter huruf besar lain yang lakukan cocok.

Oleh karena itu, Anda harus memastikan bahwa Anda memiliki semua karakter yang valid yang tercakup jika menggunakan opsi ini.

Opsi 4:Bandingkan dengan Rentang Karakter

Cara lain untuk melakukannya adalah dengan menentukan rentang karakter yang ingin kita cocokkan:

SELECT c1 FROM t1
WHERE BINARY c1 REGEXP BINARY '[A-Z]';

Hasil:

+----------------+
| c1             |
+----------------+
| CAFÉ           |
| Café           |
| eCafé          |
| James Bond 007 |
| JB 007         |
+----------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tips dan Trik untuk Menerapkan Kontrol Akses Berbasis Peran Database untuk MariaDB

  2. Bagaimana UUID() Bekerja di MariaDB

  3. 8 Cara Menambahkan Hari ke Tanggal di MariaDB

  4. Bagaimana TRIM() Bekerja di MariaDB

  5. Bagaimana HEX() Bekerja di MariaDB