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

mengapa permintaan MySQL ini menghasilkan nomor baris yang salah?

Agar baris bertambah, itu harus sesederhana memindahkan @num perhitungan ke dalam kueri luar. Dan dalam situasi itu, @current_product_id seharusnya tidak diperlukan sebagai @num dapat bertambah secara langsung.

SET @num :=0, @current_shop_id := NULL, @current_product_id := NULL;

SELECT 
  *,
  /* Perform the row increment in the outer query so it acts on the final rowset */
  @num := @num+1 AS row_number
FROM (
    SELECT products.shop_id, products.product_id, @current_shop_id := shops.shop_id AS shop_dummy, @current_product_id := products.product_id AS product_dummy

    FROM
    favorites fav1 INNER JOIN
    products ON
    fav1.product_id=products.product_id AND 
    fav1.current=1 AND
    fav1.closeted=1 AND 
    fav1.user_id=30  INNER JOIN

    shops ON
    shops.shop_id = products.shop_id

    ORDER BY shops.shop ASC, products.product_id DESC

) AS rowed_results 
WHERE
  rowed_results.row_number>=0
  AND rowed_results.row_number<(20)
  AND shop_id=130


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyimpan data sensitif dengan aman dalam database

  2. Apakah Anda diizinkan menggunakan angka sebagai nama tabel di MySQL?

  3. Kolom tidak dikenal di 'daftar bidang', tetapi kolom memang ada

  4. Bantuan Algoritma Kueri PHP MYSQL

  5. Bandingkan susunan daftar teman Facebook dengan tabel MySQL