mysqlでinstrを使用したファジイクエリー方法の紹介
933 ワード
mysqlで内部関数instrを使用すると、従来のlike方式のクエリーの代わりに高速になります.
instr関数、最初のパラメータはフィールドで、2番目のパラメータはクエリーする列で、列の位置を返します.1番目は1で、見つからなかったら0です.
たとえば、クエリーフィールドnameに「軍」の名前が付いている場合、従来の方法は次のとおりです.
instrの方法で:
または、
表A
フィールド:名前
張三王五
表B
フィールド:title
情報一枚三発表情報二王五発表情報三枚三発表
ランキングは、表Aの名前like%'name'%が表Bのtitleに一致する本数で並べ替えられ、
select名前、count(b.title)from a inner join b on instr(b.title,a.名前)>0 group by名前order by count(b.title)
まとめ
以上、mysqlでinstrを用いたファジイクエリー方法について紹介したすべての内容ですが、皆さんの役に立つことを願っています.興味のある方は引き続き当駅を参照してください:MySQLデータ型DECIMAL(N,M)のNとMがそれぞれ表す意味、MysqlのFIND_IN_SET()とINの区別の簡単な分析など、何か問題があればいつでも伝言を残して、編集者はすぐに皆さんに返事します.友达の本駅に対する支持に感谢します!
instr関数、最初のパラメータはフィールドで、2番目のパラメータはクエリーする列で、列の位置を返します.1番目は1で、見つからなかったら0です.
たとえば、クエリーフィールドnameに「軍」の名前が付いている場合、従来の方法は次のとおりです.
select name from where name like `% %';
instrの方法で:
select name from where instr('name‘,‘ ');
または、
select name from where instr('name‘,' ')>0;
表A
フィールド:名前
張三王五
表B
フィールド:title
情報一枚三発表情報二王五発表情報三枚三発表
ランキングは、表Aの名前like%'name'%が表Bのtitleに一致する本数で並べ替えられ、
select名前、count(b.title)from a inner join b on instr(b.title,a.名前)>0 group by名前order by count(b.title)
まとめ
以上、mysqlでinstrを用いたファジイクエリー方法について紹介したすべての内容ですが、皆さんの役に立つことを願っています.興味のある方は引き続き当駅を参照してください:MySQLデータ型DECIMAL(N,M)のNとMがそれぞれ表す意味、MysqlのFIND_IN_SET()とINの区別の簡単な分析など、何か問題があればいつでも伝言を残して、編集者はすぐに皆さんに返事します.友达の本駅に対する支持に感谢します!