文字列内の特殊文字の前に部分文字列を表示するMySQLクエリ
MySQLでこれにLOCATE()およびSUBSTRING()メソッドを使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable -> ( -> Title text -> ); Query OK, 0 rows affected (0.54 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values('Introduction To Java');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Introduction - To MySQL');
Query OK, 1 row affected (0.16 sec) selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
出力
これにより、次の出力が生成されます-
+-------------------------+ | Title | +-------------------------+ | Introduction To Java | | Introduction - To MySQL | +-------------------------+ 2 rows in set (0.00 sec)
以下は、部分文字列の特殊文字の前に部分文字列を表示するためのクエリです-
mysql> select distinct
-> if(LOCATE(' - ',Title)>0, SUBSTRING(Title, 1, LOCATE(' - ', Title)), Title) from DemoTable; 出力
これにより、次の出力が生成されます-
+-----------------------------------------------------------------------------+
| if(LOCATE(' - ',Title)>0, SUBSTRING(Title, 1, LOCATE(' - ', Title)), Title) |
+-----------------------------------------------------------------------------+
| Introduction To Java |
| Introduction |
+-----------------------------------------------------------------------------+
2 rows in set (0.00 sec) -
特定の最後の文字列文字でソートするMySQLクエリ?
このために、CASEステートメントを使用できます。並べ替えるには、ORDERBY句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varchar(20) -> ); Query OK, 0 rows affected (0.54 sec) 挿入コマンドを使用して
-
特定の文字ハイフンの前にあるすべての文字を取得するMySQLクエリ
このために、SUBSTRING_INDEX()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1857 ( Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1857 values('John-Smith'