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

एक संख्यात्मक सूत्र के अनुसार कॉलम मान को फिर से असाइन करने के लिए अद्यतन विवरण

एक CASE बयान मदद कर सकता है। इस उदाहरण में:

  • source , सैम, 8वें स्थान पर है
  • target , बॉब, दूसरे स्थान पर है

वेरिएबल्स को वास्तविक मानों से बदलकर, निम्न कथन स्रोत से सब कुछ नीचे 2 स्थानांतरित कर देता है, सदस्यों के बीच छोड़ देता है, लक्ष्य को स्रोत के बराबर सेट करता है, बाकी को नीचे ले जाता है:

postgres=> SELECT * FROM test order by sortval;
 name | sortval
------+---------
 bob  |       2
 tom  |       4
 mary |       6
 sam  |       8
 tim  |      10
(5 rows)


postgres=>      UPDATE test
postgres->        SET sortval = CASE WHEN sortval <= 2 THEN sortval - 2
postgres->                           WHEN sortval = 8  THEN 2
postgres->                           WHEN sortval >= 8 THEN sortval - 2
postgres->                           ELSE sortval
postgres->                           END;
UPDATE 5
postgres=> SELECT * FROM test order by sortval;
 name | sortval
------+---------
 bob  |       0
 sam  |       2
 tom  |       4
 mary |       6
 tim  |       8
(5 rows)

वह सूची में कुछ ऊपर ले जाएगा। सूची को नीचे ले जाने के लिए इसी तरह के तर्क को लागू किया जा सकता है। और यह मानता है कि ऋणात्मक संख्याएँ ठीक हैं कि केवल सापेक्ष क्रम रुचि का है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं <img src=/img.php?imageID=32 /> जैसी छवि प्रदर्शित करने के लिए php फ़ाइल को कैसे स्क्रिप्ट करूं?

  2. यदि इनपुट मान शून्य नहीं हैं तो कॉलम अपडेट करें अन्यथा अनदेखा करें और कॉलम के मौजूदा मानों को डेटाबेस में रखें

  3. MySQL:GROUP BY पर गैर-एकत्रित फ़ील्ड का क्या होता है?

  4. MySQL में Null Values ​​की तुलना कैसे करें

  5. सिंगल इंसर्ट स्टेटमेंट में एकाधिक पंक्तियों को कैसे सम्मिलित करें?