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

हर प्रविष्टि को हिट किए बिना चीजों की सूची अपडेट करें

मान लीजिए @old सेब की पुरानी स्थिति के लिए मान 4 है, और @new नई स्थिति है 1.

set @old = 4;
set @new = 1;

UPDATE Items
SET `order value` = 
  CASE `order value` WHEN @old THEN @new
  ELSE `order value` + SIGN(@[email protected]) END
WHERE `order value` BETWEEN LEAST(@old, @new) AND GREATEST(@old, @new);

मैंने आपके उदाहरण डेटा पर इसका परीक्षण करने के लिए MySQL 5.1.52 का उपयोग किया और यह काम करता है। समान एसक्यूएल भी काम करता है यदि आपको बाद में होने के लिए प्रारंभिक प्रविष्टि को स्थानांतरित करने की आवश्यकता है, या बीच में एक को स्थानांतरित करना है, आदि। बस @old के मान सेट करें और @new



  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 में ऑटोरनिंग क्वेरी

  3. MySQL में सिंगल कॉलम में 128 बिट नंबर कैसे स्टोर करें?

  4. दूरस्थ डेटाबेस के साथ iPad पर डेटाबेस सिंक करें

  5. MySQL - सहसंबद्ध सबक्वेरी में कुल डेटा को सीमित करते समय नेस्टेड सबक्वेरी के विकल्प