MySQLで置換関数を実装するためのいくつかの実用的なシナリオ

MySQLで置換関数を実装するためのいくつかの実用的なシナリオ

REPLACE構文

REPLACE(String,from_str,to_str)

つまり、String 内の from_str のすべての出現を to_str に置き換えます。ここで、from_str は正規表現の一致をサポートしていません。

操作例

テストテーブルデータは次のとおりです。

mysql> `LOL` から * を選択します。
+----+----------------+--------------+-------+
| id | ヒーロータイトル | ヒーロー名 | 価格 |
+----+----------------+--------------+-------+
| 1 | ブレードシャドウ | タロン | 6300 |
| 2 | スウィフトスカウト | ティーモ | 6300 |
| 3 | ラディアントレディ AA | ルクス | 1350 |
| 4 | クロックワーク A、召喚 A | オリアナ | 6300 |
| 5 | 至高の拳 | リー・シン | 6300 |
| 6 | 武芸剣士 | 簡単 | 450 |
| 7 | 速攻剣士 | ヤスオ | 6300 |
+----+----------------+--------------+-------+
セット内の行数は 7 です (0.00 秒)

使用シナリオ 1 – (クエリ ステートメント):

要件: 「hero_title」フィールド内のすべての「之」を「 - 」に置き換えて表示します。SQL は次のとおりです。

LOL から、repl_title、hero_name、price として REPLACE(hero_title、'之'、' - ') を選択します。
mysql> SELECT REPLACE(hero_title,'之',' - ') as repl_title,hero_name,price from `LOL`;
+----------------+--------------+-------+
| repl_title | ヒーロー名 | 価格 |
+----------------+--------------+-------+
| ブレード - シャドウ | タロン | 6300 |
| スウィフトスカウト | ティーモ | 6300 |
| ラディアントレディAA | ルクス | 1350 |
| クロックワーク A、ジーニー A | オリアナ | 6300 |
| 至高 - 拳 | リー・シン | 6300 |
| 武芸剣マスター | 簡単 | 450 |
| スイフトブレードマスター | ヤスオ | 6300 |
+----------------+--------------+-------+
セット内の行数は 7 です (0.00 秒)

使用シナリオ 2 – (更新ステートメント):

要件: 「hero_title」フィールドのすべての「A」を削除します。SQL は次のとおりです。

LOL を更新します。 SET hero_title=REPLACE(hero_title,'A','');

mysql> UPDATE `LOL` SET hero_title=REPLACE(hero_title,'A','');
クエリは正常、2 行が影響を受けました (0.05 秒)
一致した行: 7 変更: 2 警告: 0
-- 削除してクエリ:
+----+--------------+--------------+-------+
| id | ヒーロータイトル | ヒーロー名 | 価格 |
+----+--------------+--------------+-------+
| 1 | ブレードシャドウ | タロン | 6300 |
| 2 | スウィフトスカウト | ティーモ | 6300 |
| 3 | レディアント | ルクス | 1350 |
| 4 | クロックワーク ジーニー | オリアナ | 6300 |
| 5 | 至高の拳 | リー・シン | 6300 |
| 6 | 武芸剣士 | 簡単 | 450 |
| 7 | 速攻剣士 | ヤスオ | 6300 |
+----+--------------+--------------+-------+
セット内の行数は 7 です (0.00 秒)

使用シナリオ 3 – (置換または挿入: REPLACE INTO)

新しいレコードを挿入したい場合 (INSERT)、レコードがすでに存在する場合は、まず元のレコードを削除してから新しいレコードを挿入します。

需要シナリオ:

このテーブルには、各顧客の最新の取引注文情報が格納されます。単一ユーザーのデータが重複して入力されないようにし、実行効率を最大化し、データベースとのやり取りを最小限に抑え、データベースの高可用性をサポートする必要があります。
このとき、「REPLACE INTO」ステートメントを使用すれば、最初にクエリを実行してから削除するかどうかを決定し、その後に挿入する必要がなくなります。

  • 「REPLACE INTO」ステートメントは、一意性 (存在) が一意のインデックスまたは主キーに基づくかどうかを決定します。
  • 「REPLACE INTO」ステートメントは、一意性 (存在) が一意のインデックスまたは主キーに基づくかどうかを決定します。
  • 「REPLACE INTO」ステートメントは、一意性 (存在) が一意のインデックスまたは主キーに基づくかどうかを決定します。

注: 次の SQL に示すように、ユーザー名フィールドに一意のインデックス (Unique) を作成し、transId を自動増分に設定する必要があります。

-- 20 ポイントの再チャージを last_transaction (transId,username,amount,trans_time,remark) に置き換えます 
  VALUES (null, 'chenhaha', 30, '2020-06-11 20:00:20', 'メンバーリチャージ');
 
-- 21 時にスキンを購入 REPLACE INTO last_transaction (transId, username, amount, trans_time, remark) 
  VALUES (null, 'chenhaha', 100, '2020-06-11 21:00:00', 'リー・シン・シュプリーム・フィストスキンを購入');

ユーザー名が「chenhaha」のレコードが存在しない場合は、REPLACE ステートメントによって新しいレコードが挿入されます (最初の再充電)。それ以外の場合は、ユーザー名が「chenhaha」の現在のレコードが削除され、新しいレコードが挿入されます。

特別なビジネス要件がない限り、ID に特定の値を指定しないでください。そうしないと、SQL の実行に影響します。

これで、MySQL で replace 関数を実装するためのいくつかの実用的なシナリオに関するこの記事は終了です。MySQL replace の実用的なシナリオに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • mysql はフィールドコンテンツの一部を置き換え、mysql は関数 replace() を置き換えます。
  • MySQL で置換操作を使用したときにデータ損失が発生する問題の解決策
  • MySQL での replace と replace into の使い方の説明
  • MySQL での置換例の詳細な説明
  • MySQL での正規表現置換のための replace と regexp の使用法の分析
  • フィールドの内容の一部を置き換えるには、mysql で replace を使用します。
  • MySQL の replace into ステートメントの使用方法の詳細な説明
  • MySQLの置換の使用法の簡単な分析
  • MYSQL バッチ置換における置換構文の使用の詳細な説明

<<:  JavaScript配列の重複排除のいくつかの方法についての詳細な説明

>>:  CSS3 を使用したテキスト折り紙効果のサンプルコード

推薦する

友達やグループを見つけるためのJavaScriptのLayim

現在、layuiの関係者はlayim友達検索ページの構造とスタイルを提供していません。私は個人的に非...

Spark RDD をデータフレームに変換し、それを MySQL に書き込む例

DataframeはSpark 1.3.0で導入された新しいAPIで、Sparkで大規模な構造化デー...

Linux ipcsコマンドの使用

1. コマンドの紹介ipcs コマンドは、Linux のプロセス間通信機能の状態を報告するために使用...

MySQL ステートメントを使用した簡単な追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL ステートメントを使用して、単純な追加、削除、変更、およびクエ...

アイデアがWebプロジェクトを公開した後、Tomcatサーバーがプロジェクトとそのソリューションを見つけることができません

概要プロジェクトは正常に作成され、正常にデプロイされましたが、以下に示すように、Tomcat サーバ...

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

JavaScript スロットリングとアンチシェイクに関する簡単な説明

目次スロットルと手ぶれ防止コンセプト:違いスロットリングの実装スロットル機能手ぶれ補正の実装手ぶれ防...

mysql を解決: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードの使用: NO/YES)

1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...

マウスのドラッグ効果を実現するJavaScript

この記事では、マウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

MySQLデータベースで外部キー制約を使用する必要があるかどうかの詳細な説明

1. はじめに外部キー制約を使用するかどうかという話題は、すでに決まり文句になっています。学校では、...

Linux で MySQL データベースのインポートおよびエクスポート コマンドを実装する方法

1. mysqldump コマンドを使用してデータベースをエクスポートします (このコマンドのパスで...

Node.js はクライアントリクエストデータ内の中国語文字化けの問題を解決します

Node.js はクライアントリクエストデータ内の中国語文字化けの問題を解決しますコード例: var...

uniapp 要素ノードスタイルの動的変更の詳細な説明

目次1. スタイル属性をバインドして変更するhtml:対応するjs:達成された効果:次に、refを使...

CentOS 6.5 の設定 ssh キーフリーログインで pssh コマンドを実行する方法の説明

1. psshを確認してインストールします。yum list pssh 2. キーレスログインが設定...

IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

目次例示する1. Dockerリモートアクセスを有効にする2. Dockerに接続する3. イメージ...