Solusi : MySQL Order by ASC DESC, tidak bisa mengurutkan angka di phpMyAdmin

Saya punya website toko online, dibuat menggunakan woocommerce. Dan hari ini, saya ada kebutuhan untuk meng query data produk, dari database nya wp woocommerce, untuk kemudian data list produk tersebut, saya tampilkan di sebuah halaman website (situs yang berbeda).

Sehingga saya gunakan query ini :

Tapi hasilnya salah. Dimana meta_value yang isinya harga produk, padahal sudah di order by * ASC, namun hasilnya tidak berurutan dari yang paling murah, ke paling mahal. Hasilnya seperti gambar dibawah ini. Yang terurut hanya karakter paling depan saja. 1, 3, 4, 6, 7 dan 9.

Seakan-akan, query tidak melihat field tersebut, sebagai angka/integer.

Nah solusinya, kita ubah value dari field meta_value ini sebagai desimal. Caranya pakai code ini.

order by IF( wppm.meta_value REGEXP '^-?[0-9,.]+$' = 0, 9999999999 , CAST(wppm.meta_value AS DECIMAL) ), wppm.meta_value;

Dan hasilnya sebagai berikut :

Berhasil diurutkan dengan benar.

Semoga bermanfaat.

Salam,

Putu Adi.


belajar kombucha

Follow saya di sosial media

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments