Gunakan sertai dalam pertanyaan kemas kini dan bukannya lajur semasa mengemas kini baris
P粉170438285
P粉170438285 2023-08-02 12:32:01
0
1
586
<p>更新之前(原始示例表):</p> <table class="s-table"> <thead> <tr> <th>document_id</th> <th>meta_key</th> <th>meta_value</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>iban</td> <td>IBAN123456</td> </tr> <tr> <td>1</td> <td>bankaccount</td> <td>ACCT987654</td> </tr> <tr> <td>2</td> <td>iban</td> <td>IBAN555555</td> </tr> <tr> <td>2</td> <td>bankaccount</td> <td>ACCT444444</td> </tr> <tr> <td>3</td> <td>iban</td> <td>IBAN888888</td> </tr> <tr> <td>3</td> <td>bankaccount</td> <td>ACCT333333</td> </tr> </tbody> </table> <p>运行SQL更新查询后:</p> <table class="s-table"> <thead> <tr> <th>document_id</th> <th>meta_key</th> <th>meta_value</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>iban</td> <td>IBAN123456</td> </tr> <tr> <td>1</td> <td>bankaccount</td> <td>IBAN123456</td> </tr> <tr> <td>2</td> <td>iban</td> <td>IBAN555555</td> </tr> <tr> <td>2</td> <td>bankaccount</td> <td>IBAN555555</td> </tr> <tr> <td>3</td> <td>iban</td> <td>IBAN888888</td> </tr> <tr> <td>3</td> <td>bankaccount</td> <td>IBAN888888</td> </tr> </tbody> </table> <p>我需要一个查询来实现上述表格的结果吗?</p>
P粉170438285
P粉170438285

membalas semua(1)
P粉826283529

document_id, meta_key, and meta_value Anda ingin mengemas kini meta_value baris yang meta_key ialah akaun bank kepada meta_value yang sepadan dalam baris yang meta_key ialah iban.

Berikut ialah pertanyaan SQL untuk mencapai matlamat ini:


UPDATE example_table AS p1
INNER JOIN (
    SELECT document_id, meta_value AS iban
    FROM example_table
    WHERE meta_key = 'iban'
) AS p2 ON p1.document_id = p2.document_id
SET p1.meta_value = p2.iban
WHERE p1.meta_key = 'bankaccount';

  1. Jadual p1 ialah alias bagi example_table dan p2 ialah alias subquery
  2. Subquery memilih document_id dan meta_value apabila meta_key ialah 'iban'
  3. Query utama menggunakan INNER JOIN untuk memadankan document_id antara p1 dan subquery p2.
  4. Kemudian, ia mengemas kini nilai_meta dengan kunci_meta sebagai 'akaun bank' dalam p1 kepada iban dalam p2.

Sebelum menjalankan sebarang pertanyaan kemas kini, ingat untuk menyandarkan pangkalan data anda dan mengujinya dalam persekitaran yang selamat!


Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan