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

フィールドから最初の単語を抽出するMySQLクエリ?


フィールドから最初の単語を抽出するには、組み込みのSUBSTRING_INDEX()関数を使用します。構文は次のとおりです-

SELECT SUBSTRING_INDEX(yourColumnName,’ ‘,1) as anyVariableName from yourTableName;

上記のクエリで、1の代わりに-1を使用すると、最後の単語が取得されます。上記の概念を理解するために、テーブルを作成しましょう。以下は、テーブルを作成するためのクエリです。

mysql> create table FirstWordDemo
   −> (
   −> AllWords longtext
   −> );
Query OK, 0 rows affected (0.83 sec)

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

mysql> insert into FirstWordDemo values('This is the first MySQL Query');
Query OK, 1 row affected (0.11 sec)

mysql> insert into FirstWordDemo values('MySQL is a Relational Database');
Query OK, 1 row affected (0.17 sec)

mysql> insert into FirstWordDemo values('FirstWord is not correct');
Query OK, 1 row affected (0.21 sec)

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

mysql> select *from FirstWordDemo;

以下は出力です-

+--------------------------------+
| AllWords                       |
+--------------------------------+
| This is the first MySQL Query  |
| MySQL is a Relational Database |
| FirstWord is not correct       |
+--------------------------------+
3 rows in set (0.00 sec)
>

これは、フィールドから最初の単語を取得するためのクエリです。最初に同じ構文について説明しました。

以下はクエリです-

mysql> select SUBSTRING_INDEX(AllWords, ' ', 1) as MyFirstWordResult from FirstWordDemo;

以下は出力です-

+-------------------+
| MyFirstWordResult |
+-------------------+
| This              |
| MySQL             |
| FirstWord         |
+-------------------+
3 rows in set (0.00 sec)

  1. MySQLのテキストフィールドから数字のみを抽出するにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable (    Number text ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('7364746464,-'); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable values('-,890

  2. フィールド値からコンマをカウントするMySQLクエリ?

    以下は構文です- select length(yourColumnName) - length(replace(yourColumnName, ',', '')) as anyAliasName from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1510    -> (    -> Value varchar(50)    -> ); Query OK, 0 rows affected (6.75