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

ある列から文字列を取得し、カンマ区切りの値を持つ別の列でその位置を見つけるための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)

  1. 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

  2. カンマ区切りのリストで文字列と次の文字を検索する正規表現-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