MySQLで行インデックスとハードコードされた値を使用して列全体を更新する方法
P粉362071992
P粉362071992 2023-08-26 15:24:30
0
2
436
<p><strong>email</strong> 列全体を行インデックス email@gmail.com で更新したいと考えています。 </p> <p>これは私のテーブルのデータです</p> <テーブルクラス="s-テーブル"> <頭> <tr> id <th>メール</th> </tr> </頭> <みんな> <tr> 12 <td>abc@gmail.com</td> </tr> <tr> 23 <td>pqr@gmail.com</td> </tr> </tbody> </テーブル> <p>これが私が望む出力です</p> <テーブルクラス="s-テーブル"> <頭> <tr> id <th>メール</th> </tr> </頭> <みんな> <tr> 12 <td>1email@gmail.com</td> </tr> <tr> 23 <td>2email@gmail.com</td> </tr> </tbody> </テーブル> <p>以下のクエリを試しましたが、期待した出力が得られませんでした。 </p> <pre class="brush:php;toolbar:false;">;C を使用 ( rowid として email,row_number() over(ID 昇順で並べ替え) を選択します カスから ) アップデートC set email = rowid 'email@gmail.com'</pre> <p>これは単なる 3 行ではなく、<code>cus</code> テーブルには 500 行以上あります。ループを必要としない解決策を誰かが教えてくれれば良いのですが。 SQL クエリの作成を手伝ってください。ありがとう。 </p>
P粉362071992
P粉362071992

全員に返信(2)
P粉201448898

これは機能するようですが、結合を使用する必要のない、より洗練されたソリューションがあると思います...

リーリー ###総テスト### リーリー
いいねを押す +0
P粉885035114

おそらくこれがあなたがやりたいことです:

リーリー

更新するテーブル (cus) を Ccte に接続し、それに応じて更新します。

こちらがデモです

@QisM は、email が一意でない場合の構文に関する懸念を提起しましたが、OP では言及されていないため、email が実際に一意でない場合、これは次のとおりであることに同意します。解決策ではありません。そこで、構文を少し変更しました:

リーリー

Now cteid に設定し、 JOIN C ON .. 条件に id と一致するチェックを追加しました。テスト後、メールが一意でない場合、 これにより問題が解決されます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート