MySQL UPDATE ステートメントの「典型的な」落とし穴

MySQL UPDATE ステートメントの「典型的な」落とし穴

たとえば、次の図のような質問をした人がいました。

問題は次のように要約できます: MySQLでレコードupdateと、構文は正しいのですが、レコードが更新されません...

この問題に初めて遭遇したとき、私はこのステートメントをテスト ライブラリで直接実行しました。確かに問題があることがわかりましたが、開発の説明とは依然として異なっていました。ここでは、テスト データを使用してシミュレートします。

1. 問題のあるSQL文

実行後の記録は次のとおりです。

ご覧のとおり、結果は開発者が言ったように「効果がないようだ」というわけではなく、実際には効果があります。

なぜ?

構文に問題はないようです。MySQL の公式ドキュメントで更新構文を調べてみました。

assignment_listの形式がcol_name=valueのカンマ区切りリストであることから、開発者が求めていた複数フィールドの更新ステートメントは次のように記述する必要があることがすぐにわかりました。

戻ってもう一度試してください

案の定、今回は希望通りの結果が得られました!

概要: UPDATEステートメントで複数のフィールドを更新する場合、フィールド間で「AND」を使用することはできません。フィールドをコンマで区切る必要があります。

追記:後日時間ができたので振り返ってみると、なぜ「AND」で区切ったのにowner_code=0変な結果が出たのか不思議に思いました。何度も試した結果、次のことがわかりました。

は以下と同等です:

そして、( '43212' and owner_name='李四' )は論理式であり、 owner_nameは容易にわかります。したがって、この論理式の結果は false となり、 MySQLでは 0 に相当します。

これで、 MySQL UPDATEステートメントの「典型的な」落とし穴に関するこの記事は終わりです。MySQL MySQL UPDATEに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 実用的な MySQL + PostgreSQL バッチ挿入更新 insertOrUpdate
  • MySQL 更新セットとの違い
  • MySQL UPDATE ステートメントの非標準実装コード
  • mysql 更新ケース更新フィールド値が固定されていない操作
  • Mysql 更新マルチテーブル共同更新方法の概要
  • 更新とデータ整合性処理のためのMySQLトランザクション選択の説明

<<:  MySQL の Docker インストールと設定手順

>>:  円形グラデーションプログレスバー効果を実現する CSS サンプルコード

推薦する

JSはカード配布アニメーションを実現します

この記事の例では、カード配布アニメーションを実装するためのJSの具体的なコードを参考までに共有してい...

水平プログレスバーの最後にテキストを表示するための実装コードの CSS 記述

問題の説明仕事で以下の成果を達成したいと考えています。 解決div タグに相対配置を追加し、絶対配置...

CSS で要素フローティングとクリアフローティングを実装する方法

フローティングの基礎標準ドキュメント フローでは、要素は塊級元素と行內元素の 2 種類に分けられます...

Vue3のサンドボックスの仕組みの詳しい説明

目次序文ブラウザコンパイル版ローカルプリコンパイルバージョン要約する序文vue3サンドボックスには主...

よく使われるシングルページアプリケーションウェブサイト共有

CSS3お願いしますこのウェブサイトを自分で見て、パラメータを変更し、CSS3効果をオン/オフにする...

vsCodeはワンクリックでvueテンプレートを生成します

1. ショートカットCtrl + Shift + Pを使用してコンソールを呼び出します 2、「スニペ...

MySQL データ分析ストレージエンジンの例の説明

目次1. 事例紹介2. システムのデフォルトのストレージエンジンとデフォルトの文字セットを表示する3...

Windows に異なる (2 つの) バージョンの MySQL データベースをインストールする詳細なチュートリアル

1. 原因: SQL ファイルをインポートする必要があるのですが、インポートできません。この文を実行...

JavaScriptでフロアナビゲーションエフェクトを作成するプロセスの詳細な説明

目次この期間の目標1. 関数の実装1.1 構造層1.2 スタイルレイヤー1.3 行動層1.3.1 フ...

jsの継承の6つの方法を詳しく解説

プロトタイプチェーン継承プロトタイプ継承は、ECMAScript における主な継承方法です。基本的な...

Windows サーバー ファイルをローカルにバックアップする方法、Windows サーバー データ バックアップ ソリューション

重要なデータはバックアップする必要があり、リアルタイムでバックアップする必要があります。そうしないと...

Mysql の 2 つのテーブル間の結合クエリの 4 つの状況の概要

一般的に言えば、より完全な結果を得るためには、2 つ以上のテーブルから結果を取得する必要があります。...

HTML テーブルタグチュートリアル (19): 行タグ

<TR> タグの属性は、次の表に示すように、テーブル内の各行のプロパティを設定するために...

フラットスタイルを使用してウェブサイトをデザインする方法

フラットなウェブサイト構造の本質はシンプルさです。コンテンツの重要なポイントを強調し、ページの装飾効...

CSS の画像パスの問題に関する議論 (同じパッケージ/異なるパッケージ)

CSS ファイルでは、背景を使用する、つまり背景画像を追加する必要がある場合があります。これは通常、...