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

मैसकल - ऑर्डर के आधार पर दूसरे कॉलम से टेबल कॉलम अपडेट करें

मान लें कि id प्रत्येक पंक्ति के लिए अद्वितीय है, आप इसे चर के साथ कर सकते हैं:

update <table> t join
       (select t.id, @rn := @rn + 1 as seqnum
        from <table> t cross join (select @rn := 0) vars
        order by old_position
       ) tt
       on tt.id = t.id
    set t.position = tt.seqnum;

यदि आप चाहें, तो आप इसे बिना सबक्वेरी के लिख सकते हैं। चुनौती चर को परिभाषित कर रही है। यहाँ एक विधि है:

update <table> t
    set t.position = (@rn := coalesce(@rn, 0) + 1)
    order by old_position;

आप सबक्वेरी में वेरिएबल को इनिशियलाइज़ नहीं कर सकते क्योंकि MySQL दोनों को join . की अनुमति नहीं देता है और order by एक update . में बयान।




  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. PHP में समय जोड़ना

  3. PHP और MySQL का उपयोग करके साइटमैप कैसे बनाएं

  4. R RMySQL क्वेरी जापानी वर्णों को विकृत करती है

  5. नोड MySQL एस्केप LIKE स्टेटमेंट