
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
LIKEは基本的に前方一致もしくは後方一致のどちらか(もしくは完全一致)を指定します
%は0文字以上の何かという意味です
ab%にはaはヒットしませんが、abやabc、abcdefg・・・はヒットします
例えばhogeカラムに「abcde」が入っていれば、前方一致なら
hoge like 'abc%'などでヒットさせます。
いわゆるワイルドカードと言うやつですね
→前方一致:hoge like 'abc%'
→後方一致:hoge like '%cde'
→完全一致:hoge like 'abcde' →この場合普通はhoge ='abcde'の方が効率的
もちろん理論的には部分一致もヒットさせられます
→部分一致1:hoge like '%bcd%'
→部分一致2:hoge like 'a%e'
しかし前方後方一致はSQLで効率的な検索ができません(インデックスが効かない)
なのでどうせ効かないなら正規表現の方が簡潔に書けます
→正規表現:hoge regexp 'bcd'
同様に%とは別に_も1文字のワイルドカードとして使えます
a_bにはaxbやaybなどヒットしますが、abやaxbzはヒットしません
効率さえ気にしなければ組み合わせをつかっていろいろ検索できます
hoge like '___abc%xyz_'的な
この回答へのお礼
お礼日時:2019/01/10 21:00
yambejp様
詳しいアドバイス有難うございます!
ひゃ~、細かい部分まで把握するとなると結構大変そうですね。
部分一致や広報一致など、いまいち理解できていませんが、何とか頑張ってみたいと思います。
ワイルドカードは何となくわかります、PHPとかで言う*の意味でしょうか?
とても難しいのですね。
正規表現についても調べてみたいと思います、またご相談をさせて頂くかもしれませんが宜しくお願いいたします。
有難うございます。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数カラムに対するLIKE文の最適化
-
構造が異なる二つのテーブルをu...
-
エクセルかワードで家系図を作...
-
インデックスについて
-
カラムとコラムの使い分け
-
UNIONする際、片方テーブルしか...
-
INDIRECT関数の代替方法は?
-
AUTO_INCREMENTに0はダメ?
-
DBの定義のサイズを大きくし過...
-
type date にnullをinsert
-
now()かCURRENT_TIMESTAMPか
-
テーブルの列数を調べたい
-
自動販売機でホットとアイスが...
-
MySQL 改行コードを含む文字列...
-
select * での表示が崩れる?
-
MYSQLで全てのカラムから検索す...
-
ROUND関数で、四捨五入ができな...
-
DBエラーの意味
-
SELECT文で、指定カラム以外の...
-
GREATESTで NULLをスルーする方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LIKEの右側にカラムを指定でき...
-
mysqlで50音順にorder byしたい。
-
End Ifに対応するIfブロックが...
-
スペースによる絞り込み検索をS...
-
複数キーワードを複数カラムに...
-
WHERE `年月日` = '晴' OR `年...
-
場合の数 中学入試 5枚のカード
-
whereで全てを検索する方法
-
複数条件による検索
-
LIKE演算子の%について教えて...
-
複数カラムに対するLIKE文の最適化
-
MySQLのあいまい検索について
-
4つのセルの文字列が全て一致...
-
Accessで文字列の一部を抽出す...
-
SQLで条件の文字列を含んでいる...
-
PL/SQLでの文字列比較
-
SQLステータス:37000について
-
社名でデータ抽出できる検索シ...
-
前と後という言葉の意味
-
Access & ADOで「'」のLIKE検索
おすすめ情報