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

केकपीएचपी 3 में डुप्लीकेट कुंजी अद्यतन उर्फ ​​​​अप्सर्ट पर INSERT कैसे कार्यान्वित करें?

https://stackoverflow.com/a/24990944/80353 पर दिए गए उत्तर का उपयोग करना , मैं प्रश्न में दिए गए कोड नमूने का उपयोग करके इसे फिर से लिखना चाहता हूं।

निम्‍नलिखित रिकॉर्डों को ऊपर उठाने के लिए

Felicia, 27
Timmy, 71

इस तालिका में

+----+----------+-----+
| id | username | age |
+----+----------+-----+
|  1 | admin    |  33 |
|  2 | Timmy    |  17 |
|  3 | Sally    |  23 |
+----+----------+-----+

इसे

. के रूप में लिखने का सबसे अच्छा तरीका है
$newUsers = [
    [
        'username' => 'Felicia',
        'age' => 27,
    ],
    [
        'username' => 'Timmy',
        'age' => 71,
    ],
];

$columns = array_keys($newUsers[0]);

$upsertQuery = $this->Users->query();

$upsertQuery->insert($columns);

// need to run clause('values') AFTER insert()
$upsertQuery->clause('values')->values($newUsers);

$upsertQuery->epilog('ON DUPLICATE KEY UPDATE `username`=VALUES(`username`), `age`=VALUES(`age`)')
                ->execute();

इसे जांचें epilog . के बारे में विवरण के लिए बाहर

यह जांचें लिखने के तरीके के बारे में विवरण के लिए एकल क्वेरी में एकाधिक रिकॉर्ड सम्मिलित करें




  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 क्वेरी

  4. MySQL कॉलम का नाम बदलें

  5. mysql को आंतरिक या बाहरी कमांड, ऑपरेट करने योग्य प्रोग्राम या बैच के रूप में मान्यता नहीं है