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

डुप्लिकेट पर कई कॉलम अपडेट और इंक्रीमेंट करें

चूंकि कॉलम अशक्त नहीं हैं, इसलिए आपको 0 . पास करना होगा s के बजाय null s उन कॉलमों के लिए जिन्हें आप INSERT . में मानों की आपूर्ति नहीं करना चाहते हैं 0 . के साथ कथन और तुलना का उपयोग करें null . के बजाय :

INSERT INTO stock (price, stock1, stock2) VALUES
  ('99', '10', 0), 
  ('120', 0, '12')
ON DUPLICATE KEY UPDATE 
  `stock1-C` = `stock1-C` + (VALUES(stock1) <> 0 AND stock1 <> 0),
  stock1 = stock1 + VALUES(stock1), 
  `stock2-C` = `stock2-C` + (VALUES(stock2) <> 0 AND stock2 <> 0),
  stock2 = stock2 + VALUES(stock2)

परिणाम:

<थ>स्टॉक1 <थ>स्टॉक1-सी <थ>स्टॉक2 <थ>स्टॉक2-सी
कीमत
99 10 0 0 0
120 0 0 12 0

फिर फिर:

INSERT INTO stock (price, stock1, stock2) VALUES
  ('99', '10', 0), 
  ('120', 0, '12')
ON DUPLICATE KEY UPDATE 
  `stock1-C` = `stock1-C` + (VALUES(stock1) <> 0 AND stock1 <> 0),
  stock1 = stock1 + VALUES(stock1), 
  `stock2-C` = `stock2-C` + (VALUES(stock2) <> 0 AND stock2 <> 0),
  stock2 = stock2 + VALUES(stock2)

परिणाम:

<थ>स्टॉक1 <थ>स्टॉक1-सी <थ>स्टॉक2 <थ>स्टॉक2-सी
कीमत
99 20 1 0 0
120 0 0 24 1

फिर:

INSERT INTO stock (price, stock1, stock2) VALUES
  ('150', '55', 0), 
  ('150', 0, '56')
ON DUPLICATE KEY UPDATE 
  `stock1-C` = `stock1-C` + (VALUES(stock1) <> 0 AND stock1 <> 0),
  stock1 = stock1 + VALUES(stock1), 
  `stock2-C` = `stock2-C` + (VALUES(stock2) <> 0 AND stock2 <> 0),
  stock2 = stock2 + VALUES(stock2)

परिणाम:

<थ>स्टॉक1 <थ>स्टॉक1-सी <थ>स्टॉक2 <थ>स्टॉक2-सी
कीमत
99 20 1 0 0
120 0 0 24 1
150 55 0 56 0

फिर:

INSERT INTO stock (price, stock1, stock2) VALUES
  ('150', '10', 0), 
  ('150', 0, '10')
ON DUPLICATE KEY UPDATE 
  `stock1-C` = `stock1-C` + (VALUES(stock1) <> 0 AND stock1 <> 0),
  stock1 = stock1 + VALUES(stock1), 
  `stock2-C` = `stock2-C` + (VALUES(stock2) <> 0 AND stock2 <> 0),
  stock2 = stock2 + VALUES(stock2)

परिणाम:

<थ>स्टॉक1 <थ>स्टॉक1-सी <थ>स्टॉक2 <थ>स्टॉक2-सी
कीमत
99 20 1 0 0
120 0 0 24 1
150 65 1 66 1

डेमो देखें .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP पीडीओ चयन FOUND_ROWS () के लिए असंगत परिणाम लौटा रहा है

  2. SQL एक सिंटैक्स त्रुटि दे रहा है, फिर भी मुझे एक नहीं दिख रहा है

  3. mysql रेगेक्सपी/सबस्ट्रिंग के साथ सूची में चयन करें

  4. MySQL सिंटैक्स त्रुटि, अपरिचित कीवर्ड शून्य

  5. MySQL दो कॉलम को मिलाता है और एक नए कॉलम में जोड़ता है