ある列から文字列を取得し、カンマ区切りの値を持つ別の列でその位置を見つけるためのMySQLクエリ?
これには、FIND_IN_SET()を使用します。まずテーブルを作成しましょう-
mysql> create table DemoTable1866 ( Value1 int, ListOfValues varchar(100) ); Query OK, 0 rows affected (0.00 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable1866 values(56,'78,56,98,95'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1866 values(103,'103,90,102,104'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1866 values(77,'34,45,77,78'); Query OK, 1 row affected (0.00 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select * from DemoTable1866;
これにより、次の出力が生成されます-
+--------+----------------+ | Value1 | ListOfValues | +--------+----------------+ | 56 | 78,56,98,95 | | 103 | 103,90,102,104 | | 77 | 34,45,77,78 | +--------+----------------+ 3 rows in set (0.00 sec)
これは、別の列の文字列位置を取得するためのクエリです-
mysql> select Value1,ListOfValues,find_in_set(Value1,ListOfValues) as Output from DemoTable1866;
これにより、次の出力が生成されます-
+--------+----------------+--------+ | Value1 | ListOfValues | Output | +--------+----------------+--------+ | 56 | 78,56,98,95 | 2 | | 103 | 103,90,102,104 | 1 | | 77 | 34,45,77,78 | 3 | +--------+----------------+--------+ 3 rows in set (0.00 sec)
-
MySQLの文字列値(文字列、数値、特殊文字)を含む列から特定のレコードをフェッチします
このために、ORDER BY CAST()を使用できます。例を見てみましょう- mysql> create table DemoTable2006 ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserCode varchar(20) ); Query OK, 0 rows affected (1.14 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2006(Us
-
カンマ区切りのリストで文字列と次の文字を検索する正規表現-MySQL?
カンマ区切りのリストで検索するには、MySQL find_in_set()を使用します。ここでは、この目的で正規表現を使用する必要はありません。構文は次のとおりです- select *from yourTableName where find_in_set(anyValue,yourColumnName); テーブルを作成しましょう- mysql> create table demo17 −> ( −> id int not null auto_increment primary key, −> first_name varchar