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

MySQLで区切り文字を使って文字列の左側を分割する方法

MySQLでは、SUBSTRING_INDEX() 関数を使用することで、区切り文字を基準に文字列の左側の部分を簡単に取り出すことができます。基本的な構文は以下のとおりです。

SELECT
yourColumnName1,.....N,SUBSTRING_INDEX(yourColumnName,'yourSeperatorSymbol',1)
as anyVariableName from yourTableName;

第3引数に指定する「1」は、区切り文字より左側(先頭側)の文字列を取得することを意味します。それでは、この構文を実際に確認するために、テーブルを作成してみましょう。テーブルを作成するクエリは次のとおりです。

mysql> create table LeftStringDemo
   -> (
   -> Id int,
   -> Words varchar(100)
   -> );
Query OK, 0 rows affected (0.92 sec)

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

mysql> insert into LeftStringDemo values(1,'MySQL==6789');
Query OK, 1 row affected (0.19 sec)

mysql> insert into LeftStringDemo values(2,'Java==Object Oriented');
Query OK, 1 row affected (0.21 sec)

mysql> insert into LeftStringDemo values(3,'C Language==Procedural Programming');
Query OK, 1 row affected (0.18 sec)

mysql> insert into LeftStringDemo values(4,'PL/SQL==Structured Programming');
Query OK, 1 row affected (0.16 sec)

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

mysql> select *from LeftStringDemo;

実行結果は以下のとおりです。

+------+------------------------------------+
| Id   | Words                              |
+------+------------------------------------+
|    1 | MySQL==6789                        |
|    2 | Java==Object Oriented              |
|    3 | C Language==Procedural Programming |
|    4 | PL/SQL==Structured Programming     |
+------+------------------------------------+
4 rows in set (0.00 sec)

ここで、「Words」カラムの値を区切り文字「==」を基準に分割し、左側の部分だけを取得するクエリを見てみましょう。

mysql> select Id, substring_index(Words, '==', 1) as OnlyLefthandsideValue from
LeftStringDemo;

実行結果は以下のとおりです。「==」より左側の文字列だけが抽出されていることがわかります。

+------+-----------------------+
| Id   | OnlyLefthandsideValue |
+------+-----------------------+
|    1 | MySQL                 |
|    2 | Java                  |
|    3 | C Language            |
|    4 | PL/SQL                |
+------+-----------------------+
4 rows in set (0.00 sec)

補足:SUBSTRING_INDEX関数のポイント

SUBSTRING_INDEX(対象文字列, 区切り文字, 取得位置) の第3引数が正の数の場合、左から数えて指定した番目の区切り文字より左側の文字列を返します。逆に負の数を指定すると、右側の文字列を取得できます。また、区切り文字が見つからない場合は、元の文字列全体がそのまま返される点にも注意してください。

  1. MySQLでREPLACE関数を使って列の値の一部を置換・更新する方法

    MySQLで列の値を更新する際には、UPDATEコマンドとREPLACEメソッドを組み合わせることで、文字列の一部だけを効率的に置き換えることができます。この記事では、実際の操作手順を順番に解説していきます。1. テーブルの作成まず、CREATE TABLEコマンドを使ってテーブルを作成します。以下のように実行します。mysql> CREATE table DemoOnReplace -> ( -> Id int, -> Name varchar(200) -> ); Query OK, 0 rows affected (0.63 sec)2. レコードの挿入テー

  2. MySQL JDBCドライバーの接続文字列とは?書き方と使い方を解説

    MySQL JDBCドライバーの接続文字列とはJavaからMySQLデータベースへ接続する際に必要となるのが「JDBC接続文字列」です。まず、MySQLのJDBCドライバーを読み込むためのコードは以下のようになります。Class.forName(com.mysql.jdbc.Driver);ここで指定している Driver はインターフェースであり、このクラスをロードすることでMySQL用のJDBCドライバーが利用可能になります。なお、新しいMySQL Connector/J(バージョン8.0以降)では、ドライバークラス名が com.mysql.cj.jdbc.Driver に変更されている点