SQLのlike使い方まとめSQLのlikeの使い方をサンプルつきでまとめました。MySQLのサンプルデータベースEmployeesを、SQL実行結果の表示にはphpMyAdminを使って解説しています。likeを使ったワイルドカード指定の例まずは、likeを使ったシンプルな例。社員情報が格納されている、employeesテーブルをワイルドカード指定で抽出してみました。first_nameがAから始まる社員を抽出してみます。'A%'結果はこうなります。first_nameがAで始まるデータが抽出されました。パターンマッチに使われる文字パターンマッチに使われるワイルドカードは、以下の2つ。任意の一文字にマッチワイルドカード文字のエスケープ「%」や「_」そのものを比較する場合は、バックスラッシュでエスケープする必要があります。‘100\%’アプリケーションなどでユーザが入力したキーワードで、SQLを構成する場合「%」や「_」に大してエスケープ処理(サニタイズ)をおこなうべきでしょう。思いがけず、データベースに負荷をかけるクエリが発行されてしまう可能性があります。エスケープ文字を変えたい場合は、以下のようにします。'#'エスケープ文字がデフォルトの「\」(バックスラッシュ)から、#に変更されます。Aで始まる文字列にマッチします。Aで終わる文字列にマッチします。文字の最初、または途中、またさ最後にAが含まれる文字列にマッチします。2文字以上の文字列にマッチします。2文字以上の文字列にマッチします。(アンダースコア2個に%1個)例えば、’A__ka%u’は以下の文字列にマッチします。'S%'first_nameがAで始まり、かつ、last_nameがSで始まらない社員のみ抽出できました。通常のlikeでは、大文字と小文字を区別しません。Geoにもマッチしてしまいます。binaryを使います。'%geo%'小文字のgeoにのみマッチするようになりました。SQL文のlikeの遅さを計測SQL内で、likeを多用するとスピードが遅くなると言われます。どの程度遅くなるのか、計測してみました。where句でワイルドカードを使わないlikeは、「=」と、意味は全く同じになります。'George'結果はこうなりました。seconds.)約30万件あるemployeesを結合して、以下の条件をつけた場合、0.0088秒かかったことになります。seconds.)結果は全く同じで、0.0091秒かかりました。ポテパンダの一言メモwhere句に=(イコール)を使用した場合と比べて、likeを使うと1.03倍時間がかかる。5.7では、大きな差は確認できませんでした。likeで正規表現は使えないlikeで使えるのは、「%」と[_」(アンダースコア)を使った、簡易的なワイルドカード表現のみです。各データベースでは独自に機能を拡張して正規表現を使えるようになっています。MySQLの場合は、REGEXP演算子を使って正規表現が可能。SQLServerにも、正規表現に対応する拡張がされています。正規表現が可能ですし、MicrosoftのSQLServerは、likeの文字列に[](大カッコ)を使うことで、簡易的な正規表現が使えるようになっています。Docsポテパンダの一言メモlikeで正規表現は使えないただし、各データベースの拡張で、正規表現機能が用意されているdate型のカラムにlikeを使うにはdate型のカラムにlikeでワイルドカード指定をする場合、MySQLだとこのように記述します。'1990%'結果はこうなります。hire_dateが1990で始まるデータが抽出できました。この記述方法はSQL標準ではありません。各データベースによって、記載方法がことなります。Serverの場合は、Convertを使います。'1990%'と書いても、動作します。SQLのlike使い方まとめポテパンダの一言メモ指定内容によっては、大きく速度が落ちる可能性あり正規表現は、各データベースのSQL拡張。書式などが異なるdate型に対するワイルドカード指定は、char型に変換を行えば可能ポテパンが提供するサービスについて本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。ポテパンフリーランスフリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。>>ポテパンキャリアエンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。>>ポテパンキャンプポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。>>株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。正規表現を使って「〜以外」をマッチさせてみる正規表現は、文字・文字列のパターンを表現するものです。プログラミングの適性があるかチェックしてみよう!プログラミングには適性があります。プログラマーの単価相場とはどれぐらいか。エンジニアキャリア領域を得意とし5000名以上のキャリア相談実績あり。エンジニアキャリア領域を得意とし5000名以上のキャリア相談実績あり。日本人が開発したプログラミング言語というくらいは耳にしたことがあるかと思います。正規表現を使って「〜以外」をマッチさせてみる正規表現は、文字・文字列のパターンを表現するものです。NULL判定や、Switch文のような分岐をする方法たまに使うと、構文エラーを連発してしまうSQLのif文。USポテパンはエンジニアと企業の最適なマッチングを追求する企業です。Reserved.トッププログラミングキャリアフリーランス。