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

MySQLでsubstr_replaceのような処理を行う方法|INSERT()関数の使い方を解説

MySQLにsubstr_replaceのような関数はある?

MySQLでは、PHPのsubstr_replace()関数のように文字列の一部を置き換えたい場合、INSERT()関数を使用します。

INSERT()関数の構文と動作

INSERT(str, pos, len, newstr) は、文字列 str の pos 番目の位置から始まる len 文字分の部分文字列を、newstr で置き換えた文字列を返します。

  • pos が文字列の長さの範囲外の場合は、元の文字列がそのまま返されます。
  • len が残りの文字列の長さを超えている場合は、pos 以降のすべての文字列が置き換えられます。
  • 引数のいずれかが NULL の場合は、NULL を返します。

サンプルテーブルの作成

まず、テーブルを作成しましょう。

mysql> create table DemoTable
(
    Password varchar(50)
);
Query OK, 0 rows affected (0.51 sec)

レコードの挿入

insertコマンドを使って、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values('76367_____8793443');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('12345_____9899984322');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('99999_____4747747432');
Query OK, 1 row affected (0.22 sec)

レコードの表示

select文を使って、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable;

これにより、以下の出力が得られます。

+----------------------+
| Password             |
+----------------------+
| 76367_____8793443    |
| 12345_____9899984322 |
| 99999_____4747747432 |
+----------------------+
3 rows in set (0.00 sec)

INSERT()関数でsubstr_replaceと同じ処理を実現する

次のクエリは、MySQLでINSERT()関数を使ってsubstr_replaceと同等の処理を実装した例です。

mysql> select insert(Password,5,length('PPPPPP'),'PPPPPP') from DemoTable;

実行すると、以下の出力が得られます。

+----------------------------------------------+
| insert(Password,5,length('PPPPPP'),'PPPPPP') |
+----------------------------------------------+
| 7636PPPPPP8793443                           |
| 1234PPPPPP9899984322                        |
| 9999PPPPPP4747747432                        |
+----------------------------------------------+
3 rows in set (0.00 sec)

このように、5文字目以降が「PPPPPP」に置き換えられていることが確認できます。MySQLで文字列の部分的な置換を行いたい場合は、INSERT()関数を活用しましょう。

  1. MySQLでLIKEをIN()のように実装するクエリの書き方

    MySQLのIN()のような動作を実現するには、LIKE演算子と組み合わせてCOUNT()関数やIF()関数を使用します。この記事では、具体的な手順をサンプルコード付きで解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable    -> (    -> Subject varchar(80)    -> );Query OK, 0 rows affected (0.58 sec)

  2. MySQLテーブルにJSONデータを挿入する方法

    MySQLでは、JSON型のカラムを作成することで、構造化されたデータをそのまま保存できます。ここでは、JSON型カラムを持つテーブルを作成し、実際にデータを挿入・取得する手順を解説します。 1. JSON型カラムを持つテーブルを作成する まず、JSON型のカラム「ListOfNames」を持つテーブルを作成します。 mysql> create table DemoTable1832     (     ListOfNames JSON     ); Query OK,