Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

यह MySQL क्वेरी गलत पंक्ति संख्याएँ क्यों उत्पन्न कर रही है?

पंक्तियों को बढ़ाने के लिए, यह उतना ही सरल होना चाहिए जितना कि @num . को स्थानांतरित करना बाहरी क्वेरी में गणना। और उस स्थिति में, @current_product_id @num . के रूप में आवश्यकता नहीं होनी चाहिए सीधे वृद्धि कर सकते हैं।

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. दूसरे कॉलम के खिलाफ क्वेरी रिलेशन टेबल

  2. क्या क्रॉस टेबल अखंडता बाधाओं के लिए डेटाबेस ट्रिगर सुरक्षित हैं?

  3. MySQL LEAST () फ़ंक्शन - तर्कों की सूची में सबसे छोटा तर्क खोजें

  4. शामिल हों - तालिका 2 में फ़ील्ड तालिका 1 में उन्हें ओवरराइड करते हैं

  5. एकाधिक संख्या फ़ील्ड में एकाधिक संख्याओं की खोज करना