mysql 同一个mysql字段长度 多个 and like

博客分类:
现在有一个百万条的数据库库测试:
SELECT sum(length(dest_mobile) +1 - length(replace(dest_mobile,';',''))) as channel_num
from mt_sms_200804
where date_time3 BETWEEN ' 09:00:00' and ' 10:00:00'
SELECT sum(length(dest_mobile) +1 - length(replace(dest_mobile,';',''))) as channel_num
from mt_sms_200804
where date_time3 like ' 09%'
SELECT sum(length(dest_mobile) +1 - length(replace(dest_mobile,';',''))) as channel_num
from mt_sms_200804
where left(date_time3,13) = ' 09'
每个小时的执行时间(10,11,12,13,14,15,16) :
BETWEEN AND :
3.031 sec 2.562 sec
2.250 sec 2.375 sec
2.750 sec 2.594 sec
(一天的数据查询时间比对)
BETWEEN AND :
这种方法也只能测试第一次测试的结果,第二次,结果就可能被缓存。
所以大家可以讨论一下,关于测试这三中查询方式,那个最有效率?在条件一致的情况下。
zqjshiyingxiong
浏览: 333846 次
来自: 无锡
这还和字段是否主键,加索引,有很大关系,我对一个索引的字段查询 ...
好,就是想知道怎样将默认bash修改成nologin
“在jar中添加了字体”是什么意思?
楼主学习了,以后继续发表这类的文章,会继续光临的。。
Selenium中使用的貌似是Junit 3.x,上面的例子也 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
不好不坏!!
真正了解我的人知道!!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(7478)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_087069',
blogTitle:'mysql 值被包含于字段 更精确于like 查询',
blogAbstract:'&id&name&str&1sonnyboy 1,11,12,13, 2sonnyboy12,22,23,243sonnyboy211,23,12&& 表名为 temp需要查询 str 包含1的字段 的name值& 根据上表中查询 应该只有id 为1的 满足需求在mysql 中instr函数的语法是:INSTR(字段名, 字符串)。这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回所在的位置(是从1开始) 1.select name from temp where instr(str,1)&0包括sonnyboy 和sonnyboy22.FIND_IN_SET(str,strlist)& 如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子',
blogTag:'mysql,in,查询,值和字段交换,倒过来查询',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:7,
publishTime:9,
permalink:'blog/static/',
commentCount:3,
mainCommentCount:1,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'不好不坏!!\r\n真正了解我的人知道!!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}mysql like 怎么查询多个关键字 博客_百度知道
mysql like 怎么查询多个关键字 博客
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
随便举个例子定义关键字符串 strselect * from table_name where col_a like '%str%' or col_b like '%str%'或者select * from table_name where col_a like '%str%' and col_b like '%str%'%是通配符,代表0-n个任意字符如果你要找到开头是 xxx的字符串,应该写 like 'xxx%'结尾是xxx的字符串 like '%xxx'含有xxx的字符串 like '%xxx%'注意,如果字段有索引,只有like 'xxx%'能正确使用到索引
采纳率:92%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。MySql like模糊查询通配符使用详细介绍
转载 &更新时间:日 01:13:12 & 作者:
MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式
一、SQL模式
SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。
SELECT 字段 FROM 表 WHERE 某字段 Like 条件
其中关于条件,SQL提供了四种匹配模式:
1,%:表示任意个或多个字符。可匹配任意类型和长度的字符。
比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE ‘%三%' AND u_name LIKE ‘%猫%'
若使用 SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)
比如 SELECT * FROM [user] WHERE u_name LIKE ‘_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如 SELECT * FROM [user] WHERE u_name LIKE ‘三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;
二、正则模式
由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。
扩展正则表达式的一些字符是:
“.”匹配任何单个的字符。(单字节字符)
一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。
“ * ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。
正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。
如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)。
为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
为了说明扩展正则表达式如何工作,上面所示的LIKE查询在下面使用REGEXP重写:
为了找出以“三”开头的名字,使用“^”匹配名字的开始。
FROM [user] WHERE u_name REGEXP ‘^三';
将会把u_name为 “三脚猫”等等以“三”开头的记录全找出来。
为了找出以“三”结尾的名字,使用“$”匹配名字的结尾。
FROM [user] WHERE u_name REGEXP ‘三$';
将会把u_name为“张三”,“张猫三”等等以“三”结尾的记录全找出来。
你也可以使用“{n}”“重复n次”操作符重写先前的查询:
FROM [user] WHERE u_name REGEXP ‘b{2}$';
注意:如果是中文字符,可能在使用时需要注意一下。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具正文 mysql like模糊查询中文字段不准确的临时解决办法
mysql like模糊查询中文字段不准确的临时解决办法
发布时间: & 编辑:www.jquerycn.cn
mysql进行like检索时,有时会返回一些与查询词不相关的记录,如何解决呢?本文给出一个临时的解决方法,供参考。
select * from test.news where title like '%s%'
返回的结果中有一些包含s,而有些则只有中文。
提供一种解决方法:
使用 BINARY(是CAST(str AS BINARY)简短写法) 强制转换进行检索:
复制代码 代码示例:
select * from test.news where binary title like '%s%'
结果比较准确了。
有个问题就是字母区分大小写,检索的时候依然不正确,只好再转化一下:
复制代码 代码示例:
select * from test.news where binary ucase(title) like& '%s%'
这个临时方法,会带来性能上的损失,大家有更好的办法,欢迎分享一下。
坐等高手路过!脚本学堂,祝大家学习进步!您可能感兴趣的文章:}

我要回帖

更多关于 mysql 删除字段 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信