Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Mendapatkan Setiap Baris Ke-N di MySQL

Terkadang Anda mungkin perlu mendapatkan setiap baris ke-n di MySQL, atau mengembalikan setiap baris ke-n di tabel Anda. Pada artikel ini kita akan melihat bagaimana memilih setiap baris ke-n di MySQL.


Cara Mendapatkan Setiap Baris Ke-N di MySQL

Kita akan melihat dua cara untuk mendapatkan setiap baris ke-N dalam sebuah tabel – ketika Anda memiliki kolom seperti id dengan nomor urut di dalamnya, dan ketika Anda tidak memilikinya.

Katakanlah Anda memiliki tabel berikut penjualan (id, jumlah) . Untuk contoh pertama kami, kolom id berisi id baris berurutan – 1, 2, 3, …

mysql> create table sales(id int, amount int);
mysql> insert into sales(id,amount)
       values(1,100),
       (2,300),
       (3,250),
       (4,150),
       (5,200);

mysql> select * from sales;
+----+--------+
| id | amount |
+----+--------+
|  1 |    100 |
|  2 |    300 |
|  3 |    250 |
|  4 |    150 |
|  5 |    200 |
+----+--------+

Bonus Baca :Cara Menambahkan Auto Increment pada Tabel yang Ada

Inilah kueri SQL untuk memilih setiap baris ke-n di MySQL.

mysql> select * from table_name where table_name.id mod n = 0;

Dalam kueri di atas, pada dasarnya kami memilih setiap baris yang id mod n nilai mengevaluasi ke nol. Jadi kita mendapatkan baris dengan id n, 2n, 3n, … Ganti nama_tabel dengan nama tabel Anda, dan n dengan setiap baris ke-n yang ingin Anda kembalikan.

Berikut adalah contoh untuk mengembalikan setiap baris ke-2 dari tabel penjualan.

mysql> select * from sales where sales.id mod 2 = 0;
+----+--------+
| id | amount |
+----+--------+
|  2 |    300 |
|  4 |    150 |
+----+--------+

Bonus Baca :Cara Menemukan baris ke-n di MySQL

Jika tabel Anda tidak memiliki kolom seperti id dengan nomor urut yang disimpan, maka inilah kueri SQL untuk mendapatkan setiap baris ke-n dari tabel.

Katakanlah Anda memiliki tabel berikut penjualan(tanggal_pesanan, jumlah) yang tidak memiliki kolom seperti id.

mysql> create table sales2(order_date date, amount int);

mysql> insert into sales2(order_date,amount)
       values('2020-10-01',100),
       ('2020-10-02',300),
       ('2020-10-03',250),
       ('2020-10-04',150),
       ('2020-10-05',200);

mysql> select * from sales2;
+------------+--------+
| order_date | amount |
+------------+--------+
| 2020-10-01 |    100 |
| 2020-10-02 |    300 |
| 2020-10-03 |    250 |
| 2020-10-04 |    150 |
| 2020-10-05 |    200 |
+------------+--------+

Bonus Baca :Cara Replikasi Database MySQL ke Server Lain

Berikut query SQL untuk mengambil setiap baris ke-n di MySQL.

SELECT * 
FROM ( 
    SELECT 
        @row := @row +1 AS rownum, [column name] 
    FROM ( 
        SELECT @row :=0) r, [table name] 
    ) ranked 
WHERE rownum % [n] = 0

Pada query di atas, ganti [n] dengan baris ke-n yang ingin Anda dapatkan, ganti [table name] dengan nama tabel Anda, dan [column name] dengan nama kolom Anda.

Dalam kueri di atas, kami menggunakan kueri bersarang. Dalam kueri dalam mengevaluasi dan menetapkan nomor baris untuk setiap baris dan menyimpannya dalam variabel sementara yang disebut rownum. Kueri luar memilih baris dengan nilai rownum mod n sebagai nol.

Berikut adalah query SQL untuk memilih setiap baris ke-2 di MySQL.

mysql> SELECT *
       FROM (
           SELECT
              @row := @row +1 AS rownum, amount
          FROM (
              SELECT @row :=0) r, sales2
          ) ranked
      WHERE rownum % 2 = 0;
+--------+--------+
| rownum | amount |
+--------+--------+
|      2 |    300 |
|      4 |    150 |
+--------+--------+

Semoga artikel ini membantu Anda memilih setiap baris ke-n di MySQL.

Ubiq memudahkan untuk memvisualisasikan data, dan memantaunya di dasbor waktu nyata. Coba Ubiq gratis.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memisahkan DATE dan TIME dari DATETIME di MySQL

  2. Bagaimana Fungsi LOWER() Bekerja di MySQL

  3. Cara Mengonversi String ke Heksadesimal di MySQL – HEX()

  4. MySQL CONVERT_TZ()

  5. prosedur tersimpan mysql yang menyebut dirinya secara rekursif