
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文の最適化
-
他のシートの検索
-
DBの定義のサイズを大きくし過...
-
INDIRECT関数の代替方法は?
-
自分自身のテーブルを参照して更新
-
SQLです!!教えてください。
-
SQLServerでNULLを挿入したいです
-
SQLでカラムを追加し、条件に合...
-
UNIONする際、片方テーブルしか...
-
[MySQL]LOAD DATA INFILE一部レ...
-
AUTO_INCREMENTに0はダメ?
-
update時にtimestampが更新され...
-
エクセルかワードで家系図を作...
-
フレンドリストのようなものを...
-
SELECT文で、指定カラム以外の...
-
group byで最後のレコードを抽...
-
構造が異なる二つのテーブルをu...
-
一部のカラムでdistinctし全て...
-
SQLiteでカラム情報の取得って...
-
MYSQLのストアドでの動的SQLに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スペースによる絞り込み検索をS...
-
LIKEの右側にカラムを指定でき...
-
mysqlで50音順にorder byしたい。
-
whereで全てを検索する方法
-
複数カラムに対するLIKE文の最適化
-
アクセルでのクエリ
-
End Ifに対応するIfブロックが...
-
PL/SQLでの文字列比較
-
Android javaで検索プログラム...
-
SQL文に間違いがありますでしょ...
-
WHERE `年月日` = '晴' OR `年...
-
MySQL 配列もどきを条件式に
-
複数条件による検索
-
SQL文
-
SQLステータス:37000について
-
部分一致検索ができなくて困っ...
-
社名でデータ抽出できる検索シ...
-
複数のフィールドの検索
-
MySQLで複数フィールドから同一...
-
4つのセルの文字列が全て一致...
おすすめ情報