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

अगली और पिछली पंक्तियों के साथ एक पंक्ति का चयन करें

यह जटिल है, क्योंकि आप id . द्वारा एक पंक्ति का चयन कर रहे हैं , लेकिन किसी अन्य फ़ील्ड द्वारा आसन्न वाले को चुनना, modified_time

विचार पंक्तियों की गणना करने के लिए चर का उपयोग करना है। और, id . के मान की गणना करने के लिए दूसरी पंक्ति का उपयोग करें कि आप परवाह करते हैं। इसे एक सबक्वेरी में करें, और फिर अपनी इच्छित पंक्तियों का चयन करें:

SELECT t.*
FROM (SELECT `id`,
              @rn := if(@rnid := if(t.id  = '".id."', @rn + 1, @rnid),
                        @rn + 1, @rn + 1
                       ) as rn
      FROM {#table} t       
           "other_part_of_query" cross join
           (select @rn := 0, @rnid := 0) vars
      ORDER BY `modified_time` DESC
     ) t
WHERE rn in (@rnid - 1, @rnid, @rn)


  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. MySQL त्रुटि:'/var/mysqltmp/#sql_1fbd_0.MYI' फ़ाइल बनाने/लिखने में असमर्थ (त्रुटि:13)

  3. MYSQL कार्यक्षेत्र में सिंटैक्स त्रुटि घोषित करें

  4. MySQL में प्रत्येक समूह का टॉप-के प्राप्त करें

  5. फ़ील्ड की गतिशील संख्या के साथ MySQL डिज़ाइन