🧠 MySQL: Cara Mengurutkan Angka yang Bertipe VARCHAR
Bagaimana caranya ya mengurutkan data yang isinya angka tetapi tipe datanya adalah varchar pada mysql
Bismillah
Ketika bekerja dengan database, kita seringkali menggunakan tipe data VARCHAR untuk menyimpan teks. Tapi bagaimana jika kita menyimpan angka dalam kolom VARCHAR dan ingin mengurutkannya secara numerik?
Yuk kita bahas kasus yang sering membuat bingung ini!
🗃️ Studi Kasus
Misalkan kita punya sebuah tabel MySQL seperti berikut:
CREATE TABLE coba (
number VARCHAR(3) PRIMARY KEY,
nilai VARCHAR(20)
);
Lalu kita isi datanya:
INSERT INTO coba (number, nilai) VALUES ('1', 'satu'), ('2', 'dua'), ('3', 'tiga'), ('10', 'sepuluh'), ('12', 'dua belas');
❌ Masalah Umum: Urutan Tidak Sesuai
Jika kita menggunakan query standar seperti ini:
Maka hasilnya:

Kenapa urutannya seperti itu?
Karena VARCHAR akan diurutkan secara alfabetik, bukan numerik. Maka '10' dianggap lebih kecil dari '2', karena karakter pertama '1' lebih kecil dari '2'.
✅ Solusi: Gunakan Operasi +0 untuk Konversi
Untuk mengatasi hal ini, kita bisa memaksa MySQL membaca kolom VARCHAR sebagai angka dengan cara menambahkan +0:
SELECT * FROM coba ORDER BY number + 0;
Nah, ini baru urutan yang kita inginkan!
📝 Catatan Tambahan
-
Operasi
+0memanfaatkan konversi implisit MySQL dariVARCHARkeINT. -
Pastikan semua data di kolom
numberbenar-benar angka. Jika ada teks seperti'abc', maka hasil urutan bisa kacau. -
Alternatif lain, kita bisa juga pakai fungsi
CAST()atauCONVERT():
🎯 Kesimpulan
Jika kamu menyimpan angka dalam kolom bertipe VARCHAR, pastikan menggunakan teknik konversi seperti +0 atau CAST() saat melakukan pengurutan. Ini akan memastikan data diurutkan secara numerik, bukan alfabetik.
Semoga bermanfaat! 💡
Alhamdulillah


No comments:
Post a Comment