Salah satu fungsi string di MySQL adalah STRCMP()
. Fungsi ini memungkinkan Anda untuk membandingkan dua string menurut urutan pengurutannya.
Fungsi menerima dua argumen. Setiap argumen adalah string untuk dibandingkan. Ini mengembalikan 1
, -1
, atau 0
, tergantung pada apakah string pertama lebih besar, lebih kecil, atau ukurannya sama dengan string kedua, menurut urutan pengurutannya.
Sintaks
Berikut sintaksnya:
STRCMP(expr1,expr2)
Dimana expr1
adalah string pertama dan expr2
adalah string kedua.
Contoh
Berikut ini contoh string pertama lebih kecil dari string kedua menurut urutan pengurutannya:
SELECT STRCMP('A', 'B');
Hasil:
+------------------+ | STRCMP('A', 'B') | +------------------+ | -1 | +------------------+
Jika kita menukar argumen di sekitar kita mendapatkan ini:
SELECT STRCMP('B', 'A');
Hasil:
+------------------+ | STRCMP('B', 'A') | +------------------+ | 1 | +------------------+
Dan jika kita menggunakan string yang sama untuk kedua argumen, kita mendapatkan ini:
SELECT STRCMP('A', 'A');
Hasil:
+------------------+ | STRCMP('A', 'A') | +------------------+ | 0 | +------------------+
Tentu saja, string dapat (dan mungkin akan) terdiri dari lebih dari satu karakter:
SELECT STRCMP('A big box', 'Wind and rain') AS Result;
Hasil:
+--------+ | Result | +--------+ | -1 | +--------+
Koleksi
STRCMP()
fungsi menggunakan pemeriksaan saat membandingkan string. Ini berarti Anda bisa mendapatkan hasil yang berbeda tergantung pada susunan yang digunakan. Contoh berikut menunjukkan hal ini.
Tidak Peka Huruf Besar
Dalam contoh ini kami melakukan perbandingan menggunakan susunan case-insensitive (_ci
bagian dari susunan berarti tidak peka huruf besar/kecil):
SET @lowercase = _utf8mb4 'a' COLLATE utf8mb4_0900_ai_ci; SET @uppercase = _utf8mb4 'A' COLLATE utf8mb4_0900_ai_ci; SELECT STRCMP(@lowercase, @uppercase) AS Result;
Hasil:
+--------+ | Result | +--------+ | 0 | +--------+
Peka Huruf Besar
Dalam contoh ini kami melakukan perbandingan menggunakan susunan peka huruf besar/kecil (_cs
bagian dari susunan berarti peka huruf besar/kecil):
SET @lowercase = _utf8mb4 'a' COLLATE utf8mb4_0900_as_cs; SET @uppercase = _utf8mb4 'A' COLLATE utf8mb4_0900_as_cs; SELECT STRCMP(@lowercase, @uppercase) AS Result;
Hasil:
+--------+ | Result | +--------+ | -1 | +--------+
Di MySQL, susunan dapat diatur di berbagai tingkatan (misalnya tingkat koneksi, tingkat database, tingkat kolom, dll). Jika Anda tidak yakin susunan apa yang digunakan, lihat Cara Menemukan Susunan di MySQL.