アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者です。
Phpmyadminからデータの検索を行っているのですが、meta_valueなどの検索項目を入力する際に、横にLIKEやLIKE%゙…%などの検索の際の条件?を設定する項目があります。
そもそもLIKEとは何でしょうか?また、LIKE%゙…%このパーセントで挟むパターンは何を意味しているのでしょうか?

LIKEの他にもNOT LIKEや!=など、いろいろありますが、これらの意味が分かるサイトがあれば教えてください。
宜しくお願いします。

A 回答 (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_'的な
    • good
    • 0
この回答へのお礼

yambejp様

詳しいアドバイス有難うございます!
ひゃ~、細かい部分まで把握するとなると結構大変そうですね。
部分一致や広報一致など、いまいち理解できていませんが、何とか頑張ってみたいと思います。
ワイルドカードは何となくわかります、PHPとかで言う*の意味でしょうか?

とても難しいのですね。
正規表現についても調べてみたいと思います、またご相談をさせて頂くかもしれませんが宜しくお願いいたします。
有難うございます。

お礼日時:2019/01/10 21:00
    • good
    • 0
この回答へのお礼

有難うございます、こちらのサイトを参考に拝見させて頂きます。

お礼日時:2019/01/11 07:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す