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

GROUP BY कथन का अग्रिम-आदेश देना

MySQL में, ऐसा करने का सबसे सुरक्षित तरीका शायद वेरिएबल को शामिल करता है:

select im.*
from (select im.*,
             (@rn := if(@p = platform_type_id, @rn + 1,
                        if(@p := platform_type_id, 1, 1)
                       )
             ) as rn
      from main_itemmaster im cross join
           (select @rn := 0, @p := '') params
      order by platform_type_id, (territory_id = 'US') desc
     ) im
where rn = 1;

इसमें MySQL (गलत) सुविधा का उपयोग शामिल नहीं है जो SELECT . में कॉलम की अनुमति देता है एक एकत्रीकरण क्वेरी की जो समेकित नहीं है और GROUP BY . में नहीं है .

यहां एक SQL Fiddle है जो इसे काम करते हुए दिखा रही है।

संपादित करें:

चर के मूल्यांकन के आदेश के विषय पर। दस्तावेज़ीकरण से :

उपरोक्त कोड, तकनीकी रूप से, चर को उसी कथन . में पढ़ता है , लेकिन यह भी उसी अभिव्यक्ति . में है . if() . के शब्दार्थ (और case जिसका मैं कभी-कभी उपयोग भी करता हूं) भावों के मूल्यांकन के क्रम की गारंटी देता हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android ऐप डेटा को वेबसाइट डेटाबेस से कनेक्ट करें

  2. मैं PHP में PDO के साथ उपयोग करने के लिए MySQL डेटाबेस का चयन कैसे करूं?

  3. ईमेल प्राप्त करना, उन्हें संसाधित करना और उन्हें मेरे वेब एप्लिकेशन के डेटाबेस में सहेजना

  4. MySQL में डुप्लिकेट मान ढूँढना

  5. H2 - SQL कथन के साथ लिंक की गई तालिका तक पहुँचने में त्रुटि चुनें * नल से T