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

MySQL-特定の番号が含まれている場合はすべてのレコードを選択しますか?


特定の番号を持つすべてのレコードを選択するには、MySQLでFIND_IN_SET()を使用します。

テーブルを作成しましょう-

mysql> create table demo73
   -> (
   -> interest_id varchar(100),
   -> interest_name varchar(100)
   -> );
Query OK, 0 rows affected (1.48

挿入コマンド-

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

mysql> insert into demo73 values("100,101,103,105","SSC");
Query OK, 1 row affected (0.34

mysql> insert into demo73 values("105,103,1005,1003,104","Computer");
Query OK, 1 row affected (0.10

mysql> insert into demo73 values("110,105,104,111","Novel");
Query OK, 1 row affected (0.31

selectステートメントを使用してテーブルのレコードを表示する-

mysql> select *from demo73;

これにより、次の出力が生成されます-

出力

+-----------------------+---------------+
| interest_id           | interest_name |
+-----------------------+---------------+
| 100,101,103,105       | SSC           |
| 105,103,1005,1003,104 | Computer      |
| 110,105,104,111       | Novel         |
+-----------------------+---------------+
3 rows in set (0.00

以下は、特定の番号が含まれている場合にすべてのレコードを選択するためのクエリです-

mysql> select *from demo73 where find_in_set("103",interest_id) > 0;

これにより、次の出力が生成されます-

出力

+-----------------------+---------------+
| interest_id           | interest_name |
+-----------------------+---------------+
| 100,101,103,105       |          SSC  |
| 105,103,1005,1003,104 |    Computer   |
+-----------------------+---------------+
2 rows in set (0.00 sec)

  1. 特定の単語数のみのレコードをフェッチするMySQLRegExp

    これには、次の構文のようにMySQLで正規表現を使用します- select * from yourTableName where yourColumnName regexp '\land[\land ]+[ ]+[\land ]+$'; 上記のクエリは、2つの単語がスペースで区切られている場合に機能します。まずテーブルを作成しましょう- mysql> create table DemoTable1412    -> (    -> Name varchar(40)    -> ); Query

  2. MySQLで特定の番号が含まれている場合は、すべてのレコードを選択しますか?

    このためには、LIKEと一緒にconcat()を使用します。以下は構文です- select *from yourTableName where concat(',', yourColumnName, ',') like '%,yourValue,%'; テーブルを作成しましょう- mysql> create table demo49 −> ( −> id varchar(20) −> , −> first_name varchar(20) −> );