mysqlワイルドカードによるあいまいなクエリー

3525 ワード

mysqlデータベースでは、クエリーを曖昧にする必要がある場合にワイルドカードを使用します.
まず2つの概念を理解してみましょう.1つはオペレータで、1つはワイルドカードです.
オペレータ
likeはSQL文のオペレータで、SQL文の後ろにある検索モードが直接等しい一致ではなくワイルドカードを使用して比較されることを示す役割を果たします.
注意:likeオペレータを使用するときにワイルドカードを使用しない場合、効果は等号と一致します.
SELECT id,title FROM table WHERE title like '  ';

この書き方は張三の記録にしかマッチしないが、張三がいい人だという記録にはマッチしない.
ワイルドカード
%(%記号),(下線)はワイルドカードです.%は任意の文字が出現した回数(0回でもよい)を表します.単一の文字を表します.ユーザーは次のようになります.
1 SELECT id,title FROM table WHERE title like '  %';
2 SELECT id,title FROM table WHERE title like '%  ';
3 SELECT id,title FROM table WHERE title like '%  %';

1はマッチングが3枚で始まるレコード、2はマッチングが3枚で終わるレコード、3はマッチングが3枚であるレコードを示す.
1 SELECT id,title FROM table WHERE title like '  _';
2 SELECT id,title FROM table WHERE title like '__  ';

1はマッチングが張三好のような記録を表し、2はマッチングが張三のような記録を表す.
使用上の注意
大文字と小文字に注意してください.あいまいなマッチングを使用する場合、つまりテキストをマッチングする場合、mysqlはサイズを区別するか、大文字と小文字を区別しない可能性があります.この結果は、ユーザーのMySQLの構成方法に依存します.
末尾のスペースに注意してください.
注意NULL、%は任意の文字に一致しますが、NULLには一致しません.
合理的に使用する
MySQLのワイルドカードは便利ですが、この機能には代価があります.ワイルドカード検索の処理は一般的に前述した他の検索よりも時間がかかります.ここではワイルドカードを使用して覚えなければならないテクニックを示します.
ワイルドカードを過度に使用しないでください.他のオペレータが同じ目的を達成できる場合は、他のオペレータを使用します.
ワイルドカードを使用する必要がある場合は、絶対に必要でない限り、検索モードの開始に使用しないでください.ワイルドカードを検索モードの開始に配置すると、検索が最も遅くなります.
ワイルドカードの位置に注意して、場所を間違えると、希望の数が戻らないかもしれません.
転載先:https://www.cnblogs.com/firstlady/p/10160023.html