MySQLでPHPのstrposのように文字列の位置を検索したい場合は LOCATE を使う

このエントリーをはてなブックマークに追加

こんにちは、fujinyoです。
ひとつの部屋に暑がりさんと寒がりさんがいると大変ですね(-_-;)

現在、開発中のサービスはPHP+MySQLに加えてシェルスクリプトをちょこちょこ書いています。
頭の中が混乱して、PHPの関数をMySQLで使ってたりしてエラーになる事がよくあります。

PHPのstrpos()はMySQLではLOCATE
black & white Glasses & Book - exhausting readblack & white Glasses & Book – exhausting read / photosteve101

MySQLで文字列の位置を検索したい場合は、LOCATE関数を使います。

LOCATE(substr,str) , LOCATE(substr,str,pos)
最初の構文は、文字列 str に最初に出現する部分文字列 substr の位置を返す。 2 番目の構文は、文字列 str の位置 pos 以降に最初に出現する部分文字列 substr の位置を返す。 str 内に substr が存在しない場合は 0 を返す。

引数等は、PHPのstrposと同様なのですが注意すべきは文字列の開始位置は1からという事です。
PHPは0からなので、混同しないように注意です。

SELECT LOCATE('hachi', 'www.hachi-log.com');
//結果 -> 5

こんな感じです。

では、また。

[PR] 「結さん」があなたに代わって開発案件の依頼主を探します

  • 「既存のクライアントにギャラアップは言いにくい」
  • 「営業活動する時間がないし、苦手」
  • 「仕事が途切れたらどうしよう」

ITエンジニアのこんな悩みを「結さん」が解決してくれます
結さんへの無料会員登録後は提案メールを待つだけです!

関連記事

このエントリーをはてなブックマークに追加