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

MySQLで区切り文字間のテキストを検索しますか?


LOCATE()をSUBSTR()と一緒に使用する必要があります。以下の構文は、区切り文字の後の単語を検索します。ここで、区切り文字はコロン(:)です。別の区切り文字を使用できます。つまり、それはあなた次第です。構文は次のとおりです-

SELECT
   SUBSTR(yourColumnName,
      LOCATE(':',yourColumnName)+1,
         (CHAR_LENGTH(yourColumnName) - LOCATE(':',REVERSE(yourColumnName)) - LOCATE(':',yourColumnName))) AS anyAliasName
FROM yourTableName;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table SearchTextBetweenDelimitersDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Words longtext,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.67 sec)

これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです-

mysql> insert into SearchTextBetweenDelimitersDemo(Words) values('Object:Oriented:Programming');
Query OK, 1 row affected (0.21 sec)
mysql> insert into SearchTextBetweenDelimitersDemo(Words) values('C++:Java:C#');
Query OK, 1 row affected (0.21 sec)
mysql> insert into SearchTextBetweenDelimitersDemo(Words) values('SQLServer:MySQL:Oracle');
Query OK, 1 row affected (0.17 sec)
mysql> insert into SearchTextBetweenDelimitersDemo(Words) values('SQL SQLServer:MySQL:Oracle');
Query OK, 1 row affected (0.18 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from SearchTextBetweenDelimitersDemo;

以下は出力です-

+----+-----------------------------+
| Id | Words                       |
+----+-----------------------------+
|  1 | Object:Oriented:Programming |
|  2 | C++:Java:C#                 |
|  3 | SQLServer:MySQL:Oracle      |
|  4 | SQL SQLServer:MySQL:Oracle  |
+----+-----------------------------+
4 rows in set (0.00 sec)

区切り文字の間の単語を検索して表示するためのクエリは次のとおりです-

mysql> SELECT
   -> SUBSTR(Words,
   -> LOCATE(':',Words)+1,
   -> (CHAR_LENGTH(Words) - LOCATE(':',REVERSE(Words)) - LOCATE(':',Words))) AS Text
   -> FROM SearchTextBetweenDelimitersDemo;

以下は出力です-

+----------+
| Text     |
+----------+
| Oriented |
| Java     |
| MySQL    |
| MySQL    |
+----------+
4 rows in set (0.00 sec)

  1. MySQLでコンマ区切りの値の間の特定の文字列を検索するにはどうすればよいですか?

    これには、REGEXPを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1902    (    Subjects text    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1902 values('MongoDB,Java,Python'); Query OK, 1 row affected

  2. 検索クエリのMySQLデータベースフィールドタイプ?

    以下は構文です- select *from yourTableName where REGEXP_INSTR(yourColumnName,yourSearchValue); 上記の構文を理解するために、最初にテーブルを作成しましょう- mysql> create table demo64 −> ( −> id int not null auto_increment primary key, −> name varchar(40) −> ); Query OK, 0 rows affected (3.06 sec)