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

कैसे mysql अपडेट सेल्फ टेबल काम करता है

आपकी पंक्तियों की पहचान करने के लिए आपके पास कोई अद्वितीय स्तंभ नहीं है। तो आपकाJOIN आपके विचार से संभवत:अधिक पंक्तियों को अपडेट कर देगा।

आप शायद इसके बजाय कुछ ऐसा चाहते हैं:

UPDATE tem AS t1 JOIN (SELECT a, MIN(b) AS m FROM tem GROUP BY a) AS t2
USING (a)
SET t1.b = t2.m;

देखें http://sqlfiddle.com/#!2/c6a04/1

यदि आप केवल NULL . वाली पंक्तियों को अपडेट करना चाहते हैं कॉलम में b , यह केवल WHERE . की बात है खंड:

CREATE TABLE tem(a INT,b INT);    
INSERT INTO tem VALUES(1,2),(1,1),(1,NULL),(2,3);

UPDATE tem AS t1 JOIN (SELECT a, MIN(b) AS m FROM tem GROUP BY a) AS t2
USING (a)
SET t1.b = t2.m
WHERE t1.b IS NULL;

देखें http://sqlfiddle.com/#!2/31ffb/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. क्या एक सबक्वायरी के लिए दो मान वापस करना संभव है?

  2. MySQL में एनम मान वापस करने का सबसे अच्छा तरीका क्या है?

  3. सबक्वेरी बनाम जॉइन

  4. PHP PDO और MySql का उपयोग करते समय IS NULL या NULL को बाइंड करें

  5. MySQL एक महीने के प्रत्येक दिन की तारीख पर आने वाली पंक्तियों की गिनती प्राप्त करने के लिए