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

कॉलम अपडेट कर रहा है ताकि इसमें पंक्ति की स्थिति हो

यह काम करना चाहिए

update 
content,
(
  select 
  @row_number:=ifnull(@row_number, 0)+1 as new_position,
  ContentID 
  from content
  where CategoryID=1
  order by position
) as table_position
set position=table_position.new_position
where table_position.ContentID=content.ContentID;

लेकिन मैं उपयोगकर्ता परिभाषित चर को अनसेट करने के लिए इसे पहले लागू करना पसंद करूंगा

set @row_number:=0;

Mchl द्वारा जोड़ा गया:

आप इसे इस तरह के एक बयान में कर सकते हैं

update 
content,
(
  select 
  @row_number:=ifnull(@row_number, 0)+1 as new_position,
  ContentID 
  from content
  where CategoryID=1
  order by position
) as table_position,
(
  select @row_number:=0
) as rowNumberInit
set position=table_position.new_position
where table_position.ContentID=content.ContentID;


  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. कोडनिर्देशक सक्रिय रिकॉर्ड क्वेरी डेटाबेस से डेटा लोड करने में बहुत अधिक समय लेता है

  4. जॉइन करके किसी अन्य तालिका से गैर-मौजूदा डेटा कैसे खोजें?

  5. लोड डेटा कमांड के बिना डेटाबेस को पॉप्युलेट करना