时 间 记 忆
<<  < 2018 - >  >>
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

最 新 评 论

最 新 日 志

最 新 留 言

搜 索

用 户 登 录

我 的 相 册

我 的 圈 子

我 的 好 友

友 情 连 接


 
 
 
大数据量处理 like慢 就用它
[ 2018-3-13 22:27:00 | By: 我家超超会发光 ]
 

你是否一直在寻找比MySQL的LIKE语句更高效的方法的,下面我就为你介绍几种。

LIKE语句
SELECT `column` FROM `table` where `condition` like `%keyword%'


事实上,可以使用 locate(position) 和 instr 这两个函数来代替

一、LOCATE语句
SELECT `column` from `table` where locate(‘keyword’, `condition`)>0


二、或是 locate 的別名 position
POSITION语句
SELECT `column` from `table` where position(‘keyword’ IN `condition`)


三、INSTR语句

SELECT `column` from `table` where instr(`condition`, ‘keyword’ )>0


locate、position 和 instr 的差別只是参数的位置不同,同时locate 多一个起始位置的参数外,两者是一样的。
mysql> SELECT LOCATE(‘bar’, ‘foobarbar’,5);

-> 7

速度上这三个比用 like 稍快了一点。
SELECT
* FROM table WHERE keyword LIKE 'field%'
SELECT * FROM table WHERE LOCATE('field',keyword)>0;
SELECT * FROM table WHERE position(keyword,IN 'field');
SELECT * FROM table WHERE INSTR(keyword,'field')>0;
table : 表名
field : 需要查字段名
keyword : 字段名称
 
 
发表评论:
 
浙江博客 浙江博客
浙江博客欢迎您!