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

sqlfiddle.com 5.5.30 और मारियाडीबी 5.5.31 में भिन्न परिणाम

डर है कि मेरे पास मारियाडीबी हाथ नहीं है, लेकिन क्या आप यह देखने के लिए निम्न कोशिश कर सकते हैं कि उपयोगकर्ता चर कैसे आउटपुट होते हैं:-

SELECT  *
FROM test_golf_player p
LEFT JOIN 
(
    SELECT pid, leaguepoints, @Sequence:=IF(@PrevPid = pid, @Sequence + 1, 0) AS aSequence, @PrevPid := pid
    FROM
    (
        SELECT pid, leaguepoints
        FROM test_golf_card 
        ORDER BY pid, leaguepoints DESC
    ) Sub1
    CROSS JOIN (SELECT @PrevPid := 0, @Sequence := 0) Sub2
) gC
ON p.pid = gC.pid 
ORDER BY p.name DESC 

संपादित करें - आपके परिणामों को देखते हुए थोड़ी जांच करने से ऐसा लगता है कि मारियाडीबी ने उप क्वेरी में ऑर्डर द्वारा अनदेखा कर दिया है। इसलिए अनुक्रम संख्या एक यादृच्छिक क्रम में है, और जब पिड बदलता है (जो यह क्रम तय नहीं होने के कारण यादृच्छिक रूप से करता है) भी रीसेट हो जाता है। एक Google का बिट और ऐसा लगता है कि यह मारियाडीबी की एक जानबूझकर विशेषता है। SQL मानक एक तालिका को पंक्तियों के एक अनियंत्रित सेट के रूप में परिभाषित करता है, और एक उप चयन को एक तालिका के रूप में माना जाता है, इसलिए क्रम को अनदेखा कर दिया जाता है - https://kb.askmonty.org/hi/why-is-order-by-in-a-from-subquery -अनदेखा/

यह थोड़ा नुकसान है। सुनिश्चित नहीं है कि कोई कामकाज है क्योंकि मैं इस समय एक के बारे में नहीं सोच सकता। मूल समस्या से निपटने के लिए मुझे लगता है कि सहसंबद्ध उप चयनों का उपयोग करना आवश्यक होगा जो शायद कुशल नहीं होंगे।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL रेगेक्स में समूहों का संदर्भ?

  2. मैक पर डॉकर मशीन:डोकर होस्ट/डॉकर-मशीन पर माउंटेड वॉल्यूम नहीं देख सकता है? वॉल्यूम भौतिक रूप से कहाँ संग्रहीत किए जाते हैं?

  3. MySQL में दो तिथियों के बीच अंतर की गणना कैसे करें

  4. MySQL में बेस 64 एनकोड

  5. mysql डेटाबेस में बड़े CSV आयात करना