mysql语句中使用like后面的%(百分号)的问题

问题:mysql语句中使用like后面的%(百分号) 是不是越多运行效率越慢!

总用时:0.0489秒 0.0691 0.0485 0.0467

SELECT `goods_name`, `goods_img`, `sku_id`, `import` FROM `goods` WHERE `goods_name` LIKE '%iPhone%iPod%' AND `stime` < 1413877244 AND `etime` > 1413877244 ORDER BY `flag` DESC

总用时:0.0460秒  0.0430  0.0493 0.0783 0.0496

SELECT `goods_name`, `goods_img`, `sku_id`, `import` FROM `goods` WHERE `goods_name` LIKE '%iPhone%' AND `goods_name` LIKE '%iPod%' AND `stime` < 1413877367 AND `etime` > 1413877367 ORDER BY `flag` DESC

总用时:0.0458秒 0.0441秒   0.0449秒

SELECT `goods_name`, `goods_img`, `sku_id`, `import` FROM `goods` WHERE `goods_name` LIKE '%%%%%%%%%%%%%%%%%%%%%%%iPhone%iPod%%%%%%%%%%%%%%%%%%%%%%%' AND `stime` < 1413877997 AND `etime` > 1413877997 ORDER BY `flag` DESC

实践证明,百分号的数量不影响sql运行的速度。这几种方法的效率都是差点儿相同的。

以上是我測试的结果。个人可依据自己的实际需求去选择写法!建议是最好选择另外一种!

时间: 2024-11-10 12:01:30

mysql语句中使用like后面的%(百分号)的问题的相关文章

在mysql语句中为什么要加反引号

在MySQL语句中我们有时候经常会遇到反引号(``),刚开始的时候不知道什么意思,他是什么作用呢? Select * from `member` order by posts desc limit 0,10; 它是为了区分MYSQL的保留字与普通字符而引入的符号. 举个例子:SELECT `select` FROM `test` WHERE select='字段值' 在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为

MySql语句中select可以嵌套么,字段的重命名可以用中文么

今天文档中看到的查询语句,SELECT后面又跟了一个SELECT嵌套,而且把字段重命名为中文,请问可以这样做么 MySql语句中select可以嵌套么,字段的重命名可以用中文么 >> mysql 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/mysql/1010000007432443/MySql语句中select可以嵌套么字段的重命名可以用中文么.html

MySQL语句中的转义字符

MySQL语言中的转义字符和各种编程语言基本相同,见下表 形式 含义 \0 0(NUL)字符 \n 换行 \r 回车符 \t 制表符 \b 退格 \' 单引号 \" 双引号 \\ 反斜线 \% %符(用于区分模式匹配中的%) \_ _符(用于区分模式匹配中的_) 举其中一个用的比较多的'\n'为例,执行以下SQL语句结果大家应该都知道,但是对于上面的图,大家是不是看起来有点别扭?的确,因为我们看到不仅是结果出现了换行,就连select语句中的表达式也换行了,这是因为表达式是处理之后显示的,只不过

mysql 语句中的national 、 comment

create table hms.as_othersassess(   assessid             national varchar(16) not null comment '评估编号+24位客户id+6位随机',   customerid           national varchar(13) comment '客户编号',   allergy              national varchar(500) comment '过敏史',   injury      

MySql语句中Union和join的用法

Union UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. 默认地,UNION 操作符选取不同的值.如果允许重复的值,请使用 UNION ALL. 另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名. JOIN 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 j

mysql语句中----删除表数据drop、truncate和delete的用法

程度从强到弱 1.drop  table tb drop将表格直接删除,没有办法找回 2.truncate (table) tb 删除表中的所有数据,不能与where一起使用 3.delete from tb (where) 删除表中的数据(可制定某一行) 区别:truncate和delete的区别 1.事务:truncate是不可以rollback的,但是delete是可以rollback的: 原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rol

MYSQL语句中SELECT语句及其子句的执行顺序

SELECT语句的执行的逻辑查询处理步骤:(8)SELECT (9)DISTINCT(11)<TOP_specification> <select_list>(1)FROM <left_table>(3) <join_type> JOIN <right_table>(2) ON <join_condition>(4)WHERE <where_condition>(5)GROUP BY <group_by_list&g

mysql语句中日期函数和日期的加减运算

一.秒数和时钟格式的互相转化 SEC_TO_TIME(seconds) 返回seconds参数,变换成小时.分钟和秒,值以'HH:MM:SS'或HHMMSS格式化,取决于函数是在一个字符串还是在数字.select SEC_TO_TIME(73200); -> '20:20:00' select TIME_TO_SEC(1220); -> '00:20:20'mysql> select SEC_TO_TIME(73200) + 0; -> 202000.000000 TIME_TO_

mysql语句中的时间格式化转换

1.unix_timestamp 将时间转化为时间戳.(date 类型数据转换成 timestamp 形式整数) 没传时间参数则取当前时间的时间戳 MySQL> select unix_timestamp();+------------------+| unix_timestamp() |+------------------+|       1361586358 |+------------------+1 row in set (0.01 sec) mysql> select unix_t