MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのストアドプロシージャでアポストロフィ(シングルクォート)を削除する方法

文字列からアポストロフィ(シングルクォート)を取り除きたい場合は、REPLACE()関数を使って空文字列に置き換えるのが基本の方法です。まずは構文から見ていきましょう。

SET anyVariableName = REPLACE(yourVariableName , '\'', '');

ストアドプロシージャの作成例

上記の構文を理解するために、実際にMySQLでアポストロフィを削除するストアドプロシージャを作成してみます。

mysql> DELIMITER //
mysql> CREATE PROCEDURE remove_Apostrophe(IN Value VARCHAR(200))
    BEGIN
       SET Value = REPLACE(Value , '\'', '');
       SELECT CONCAT("AFTER REMOVING APOSTROPHE THE STRING IS= ", Value);
    END
    //
Query OK, 0 rows affected (0.15 sec)
mysql> DELIMITER ;

このプロシージャでは、引数として渡された文字列「Value」に対してREPLACE()を適用し、アポストロフィ(')を空文字列に置き換えています。SQL内でアポストロフィそのものを扱うため、バックスラッシュ(\')によるエスケープが必要な点に注意してください。

ストアドプロシージャの呼び出し方

作成したプロシージャは、CALLコマンドで呼び出すことができます。

mysql> CALL remove_Apostrophe("Introduction to My'SQL");

実行すると、次のような出力が得られます。

+----------------------------------------------------------------+
| CONCAT("AFTER REMOVING APOSTROPHE THE STRING IS= ", Value)     |
+----------------------------------------------------------------+
| AFTER REMOVING APOSTROPHE THE STRING IS= Introduction to MySQL |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.01 sec)

このように、「My'SQL」のアポストロフィが取り除かれ、「Introduction to MySQL」という結果が返ってきました。

まとめ

  • アポストロフィの削除にはREPLACE()関数を使用するのが簡単です。
  • SQL内ではアポストロフィを「\'」のようにエスケープする必要があります。
  • ストアドプロシージャとしておけば、任意の文字列に対して何度でも再利用できて便利です。
  1. MySQLストアドプロシージャで数学演算を実行する方法

    MySQLのストアドプロシージャで計算処理を行うMySQLのストアドプロシージャを利用すると、金額×数量のような数学演算をまとめて定義し、必要なときに簡単に呼び出して実行できます。ここでは、引数として受け取った「amount(金額)」と「quantity(数量)」を掛け合わせて合計を求めるプロシージャを作成する手順を紹介します。ストアドプロシージャの作成まず、delimiter を変更してプロシージャ本体を定義します。以下の例では、amount と quantity の2つの INT 型引数を受け取り、その積を「Total」として表示します。mysql> delimiter // mys

  2. MySQLストアドプロシージャでテーブルにデータを挿入する方法

    MySQLのストアドプロシージャを使ってテーブルにデータを挿入するには、以下のような構文を使用します。create procedure yourProcedureName(OptionalParameter) begin insert into yourTableName() values(yourValue1,yourValue2,...N); endサンプルテーブルの作成まずは、この構文を実際に理解するために、テスト用のテーブルを作成してみましょう。mysql> create table DemoTable1928 ( Id int NOT NULL