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

MySQL LOCATE()関数で検索の開始位置を指定・制御する方法

MySQL LOCATE()関数で検索の開始位置を制御するには?

MySQLのLOCATE()関数は、デフォルトでは対象文字列の先頭(1文字目)から検索を開始します。しかし、第3引数に開始位置を表す数値を指定することで、文字列内の任意の場所から検索を開始させることができます。

基本構文

LOCATE(検索する文字列, 対象となる文字列, 検索開始位置)

第3引数の「検索開始位置」は省略可能で、省略した場合は先頭から検索が行われます。

使用例

mysql> Select LOCATE('good','Ram is a good boy. Is Ram a good boy?',11)As Result;

+--------+
| Result |
+--------+
|    29 |
+--------+

1 row in set (0.00 sec)

上記の例では、第3引数として「11」を指定しています。これは、MySQLが11番目の位置から検索を開始するという意味です。そのため、9文字目に存在する最初の「good」は無視され、29文字目にある2つ目の「good」の位置が結果として返されています。

もし開始位置を指定しなければ、先頭から検索されて最初に見つかった「9」が返される点に注意してください。このように、開始位置を活用すれば、同じ文字列が複数回出現する場合でも、目的の出現箇所を柔軟に特定することができます。

  1. MySQLイベントスケジューラの起動・停止方法をわかりやすく解説

    MySQLイベントスケジューラは、バックグラウンドで常時稼働し、実行すべきイベントを監視し続けるプロセスです。イベントを作成・スケジュールする前に、まずこのスケジューラを起動しておく必要があります。 イベントスケジューラを起動する方法 以下のステートメントを実行することで、イベントスケジューラを起動できます。 mysql> SET GLOBAL event_scheduler = ON; Query OK, 0 rows affected (0.07 sec) スケジューラの動作状況を確認する方法 起動後、次のステートメントを使えば、MySQLのプロセスリストでスケジューラの状態を確認で

  2. MySQLで日付ごとの合計値を集計する方法【GROUP BY活用術】

    MySQLでは、datetime型の日付データを日ごとにグループ化し、数値の合計を求めることができます。本記事では、サンプルテーブルを作成し、DATE()関数とGROUP BY句、SUM()関数を組み合わせて日付ごとの合計を集計する手順を解説します。1. サンプルテーブルの作成まず、datetime型のカラムと、日数(カウント)を格納するint型のカラムを持つテーブルを作成します。mysql> create table DemoTable ( ShippingDate datetime, CountOfDate int ); Query OK, 0 rows affect