Cara Menampilkan Data Secara Acak (Random) Di MySQL

0
Pada Tips dan Trik MySQL kali ini, kita akan belajar mencoba untuk menampilkan data secara acak (random).

Untuk menampilkan data secara acak, Anda dapat menambahkan fungsi RAND() yang dikombinasikan dengan Order By Clause.

Contoh

Untuk lebih jelasnya perhatikan contoh di bawah ini:

Misalkan Anda memiliki sebuah tabel pegawai dengan data-data sebagai berikut:

mysql> SELECT * FROM pegawai;
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+
10 rows in set (0.02 sec)

Untuk menampilkan data secara acak, Anda dapat menggunakan fungsi RAND() seperti berikut ini:

mysql> SELECT * FROM karyawan
    -> ORDER BY RAND();
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
+------------+---------------+---------------+-----------+------+----------+------------+
10 rows in set (0.00 sec)

mysql> SELECT * FROM karyawan
    -> ORDER BY RAND();
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
+------------+---------------+---------------+-----------+------+----------+------------+
10 rows in set (0.00 sec)

Anda dapat menambahkan LIMIT clause pada fungsi RAND() untuk membatasi jumlah data yang akan ditampilkan. Perhatikan contoh berikut ini:

mysql> SELECT * FROM karyawan
    -> ORDER BY RAND() LIMIT 5;
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+
5 rows in set (0.00 sec)

mysql> SELECT * FROM karyawan
    -> ORDER BY RAND() LIMIT 5;
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
+------------+---------------+---------------+-----------+------+----------+------------+
5 rows in set (0.00 sec)

mysql> SELECT * FROM karyawan
    -> ORDER BY RAND() LIMIT 5;
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+
5 rows in set (0.00 sec)

Sekian Tips & Trik singkat tentang Cara Menampilkan Data Secara Acak Di MySQL. Semoga bermanfaat & Happy Learning MySQL.

Bagi teman-teman pembaca yang ingin berdiskusi, bertanya ataupun memberikan masukan atau saran pada tutorial ini, silakan untuk menggunakan fasilitas komentar yang telah disediakan.

Salam,

Nursalim

0 Comments