MySQL の連結で複数の一重引用符と三重引用符を使用する際の問題

MySQL の連結で複数の一重引用符と三重引用符を使用する際の問題

文字列を動的に連結する場合、文字連結を使用することが多いです。次のような連結の引用符の意味がわかりません。

1. '''+ id +''' に引用符が 3 つあるのはなぜですか? 左側にプラス記号があり、右側にもプラス記号があるのはなぜですか? (詳しく説明していただけますか?)

SQLコード

sum(case Leave when '''+ id +''' then DaysNo else 0 end) ['+ name +']'

通常の文:

SQLコード

SUM(CASE Leave WHEN '01' THEN DaysNo END) AS [CASE Leave],
SUM(CASE Leave WHEN '02' THEN DaysNo END) AS [病気休暇]

短い答え:

簡単に言うと、単一引用符はステートメントを連結するために使用され、3 つの引用符は文字列変数値を連結するために使用されます。

引用符には特別な意味があるため、エスケープするには引用符を 2 回記述する必要があります。

2. 文字列の単一引用符と二重引用符には違いがありますか?

簡単に言うと、通常使用する場合は、一重引用符を使用します。一重引用符で囲まれている場合は、一重引用符を使用する必要があります。次に、一重引用符 (エスケープ) を追加して、一重引用符を 3 つにする必要があります。

標準 SQL では、文字列リテラルは一重引用符で囲まれます。

文字列自体にも一重引用符が含まれている場合は、一重引用符を 2 つ使用します (二重引用符ではないことに注意してください。文字列内の二重引用符は個別にエスケープする必要はありません)。

MySQL の SQL 拡張機能では、一重引用符と二重引用符の両方を使用できます。

簡単な要約:

文字列を連結するときに、ステートメント内で一重引用符が必要な場合は、1 つの一重引用符ではなく 2 つの一重引用符を使用できます。

mysql> select concat('drop user ''''@', ''''、@@hostname、 '''');
+----------------------------------------------------+
| concat('drop user ''''@', ''''、@@hostname、 '''') |
+----------------------------------------------------+
| ユーザー ''@'bei-f0q5bc2.gemalto.com' を削除します |
+----------------------------------------------------+
セット内の 1 行 (0.00 秒)

補足拡張: MySQLは一重引用符と二重引用符で囲まれた文字列を挿入します

以下のように表示されます。

文字列 needInsertStr= 一重引用符と二重引用符で囲まれた文字列。

String finalStr = needInsertStr.replaceAll("'", "\\\\\'"); //効果は一重引用符の前にエスケープ記号を追加するのと同じです\
//他の特殊文字についても同様 long dateMillions = System.currentTimeMillis();

StringBuilder は、新しい StringBuilder() を作成します。
stringBuilder.append("" に挿入);
stringBuilder.append(テーブル名);
stringBuilder.append("(uuid、name、metric_id、service_id、script、deleted、created、updated) ");
stringBuilder.append("値(uuid(),'");
文字列ビルダー.append(名前);
文字列ビルダー.append("','");
文字列ビルダー.append(名前);
文字列ビルダー.append("','");
文字列ビルダー。サービス ID を追加します。
文字列ビルダー.append("','");
文字列ビルダー.append(finalStr);
文字列ビルダー.append("',0,");
文字列ビルダーを追加します。
文字列ビルダー.append(",");
文字列ビルダーを追加します。
文字列ビルダー.append(")");

stringBuilder.toString() を返します。

// スクリプトフィールドは一重引用符と二重引用符で囲まれた文字列です

テーブルに挿入(文字列) 値(' "これはテスト文です" + \'テストの一重引用符と二重引用符\' ')

MySQL の連結で複数の一重引用符と三重引用符を使用する方法に関する上記の記事は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL ステートメントに一重引用符またはバックスラッシュを含む値を挿入する方法
  • MySQL で二重引用符の位置が誤っていたために起きた殺人事件の詳細な分析
  • シングルクォートを使用したMySQLクエリとシングルクォートを使用した文字列の挿入について
  • 単一引用符によって引き起こされる MYSQL パフォーマンス問題の分析
  • MySQL における引用符とバックティックの違いと使い方の詳細な説明

<<:  DockerはElasticsearch7.6クラスタをインストールし、パスワードを設定します

>>:  Vue ベースの Excel 解析とエクスポートの詳細な説明

推薦する

Dockerとiptablesとブリッジモードのネットワーク分離と通信操作の実装

Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...

MySQLの日付と時刻の間隔計算の分析例

この記事では、例を使用して、MySQL の日付と時刻の間隔計算について説明します。ご参考までに、詳細...

さまざまな Tomcat ログと catalina.out ファイルのセグメンテーションの関係についての簡単な分析

Tomcatログの関係一枚の写真は千の言葉に値する! localhost.{yyyy-MM-dd}....

mysql 一時テーブルの使用状況の分析 [クエリ結果は一時テーブルに保存できます]

この記事では、例を使用して MySQL 一時テーブルの使用方法を説明します。ご参考までに、詳細は以下...

HTML テーブル マークアップ チュートリアル (29): セルのライト境界線の色属性 BORDERCOLORLIGHT

セルでは、明るい境界線の色を個別に定義できます。 > 基本構文<TD ボーダーカラーライ...

MySQL で大量のデータ (数千万) を素早く削除するためのいくつかの実用的なソリューションの詳細な説明

著者は最近、仕事でパフォーマンスのボトルネックの問題に遭遇しました。MySQL テーブルには毎日約 ...

CSS3 で z-index が効かない問題の解決方法

最近、CSS3 と js の組み合わせを作成したのですが、z-index が有効にならないケースが多...

WMLタグの概要

構造関連タグ--------------------------------------------...

Json の長所と短所、使用方法の紹介

目次1. JSONとは何か1.1 配列リテラル1.2 オブジェクトリテラル1.3 混合リテラル1.4...

vue3.0 sfcのセットアップの変更について簡単に説明します。

目次序文標準的なSFCの書き方スクリプト設定可変露出部品の取り付け小道具カスタムイベント要約する序文...

Nexus をベースに Alibaba Cloud プロキシ ウェアハウスを構成するプロセスの分析

Nexus のデフォルトのリモートリポジトリは https://repo1.maven.org/ma...

PIP で docker-compose をインストールする際のタイムアウト問題の解決方法

1: インストールコマンドpip install docker-compose例外情報socket....

Webpack4プラグインの実装原理についての簡単な説明

目次序文知る練習すれば完璧になる序文wabpack では、ローダーの他にプラグインがコア機能です。プ...

Dockerのオンラインおよびオフラインインストールと一般的なコマンド操作

1. テスト環境名前バージョンセント7.6ドッカー18.09.06 2. オンラインインストールここ...

Docker で MySQL データベースを使用して LAN アクセスを実現する

1. MySQLイメージを取得する docker pull mysql:5.6注: mysql5.7...