随笔分类 -  sql

摘要:1、常用的mysql执行更新操作语句如下: UPDATE table1 set num = num + 1 where id in (SELECT id FROM table2 WHERE date>'2017-05-09) in条件的更新效率可优化使用join语法;2、join预发更新操作 UPD 阅读全文
posted @ 2020-08-31 17:29 Microtiger 阅读(2660) 评论(0) 推荐(0) 编辑
摘要:select FROM_UNIXTIME(udate,'%Y-%m-%d %T') from 阅读全文
posted @ 2020-08-10 15:56 Microtiger 阅读(512) 评论(0) 推荐(0) 编辑
摘要:问: 不是说,一条sql语句只能用一个索引么 但SELECT * FROM `comment` WHERE `toconuid` = '10' or `tocomuid` = '10' 其中 toconuid列 和 tocomuid列 分别为单列索引 explain后 显示两个索引都用了,extra 阅读全文
posted @ 2018-05-23 09:14 Microtiger 阅读(624) 评论(0) 推荐(0) 编辑
摘要:在查询中,WHERE 条件也是一个比较重要的因素,尽量少并且是合理的 where条件是徆重要的,尽量在多个条件的时候,把会提取尽量少数据量的条件放在前面,减少后一个 where 条件的查询时间。有些 where 条件会导致索引无效: 1.where 子句的查询条件里有!=,MySQL 将无法使用索 阅读全文
posted @ 2018-05-12 13:48 Microtiger 阅读(7805) 评论(0) 推荐(1) 编辑
摘要:left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: 表A记录如下:aID aNum1 a200501112 a 阅读全文
posted @ 2017-12-01 17:09 Microtiger 阅读(223) 评论(0) 推荐(0) 编辑
摘要:min/max优化 在表中,一般都是经过优化的. 如下地区表 id area pid 1 中国 0 2 北京 1 ... 3115 3113 我们查min(id), id是主键,查Min(id)非常快. 但是,pid上没有索引, 现在要求查询3113地区的min(id); select min(id 阅读全文
posted @ 2017-09-23 14:16 Microtiger 阅读(994) 评论(0) 推荐(0) 编辑
摘要:in 型子查询引出的陷阱 select goods_id from goods where cat_id in (1,2,3) 直接用id,不包含子查询,不会中陷阱 题: 在ecshop商城表中,查询6号栏目的商品, (注,6号是一个大栏目) 最直观的: mysql> select goods_id 阅读全文
posted @ 2017-09-21 16:09 Microtiger 阅读(487) 评论(0) 推荐(0) 编辑
摘要:1.id: 代表select 语句的编号, 如果是连接查询,表之间是平等关系, select 编号都是1,从1开始. 如果某select中有子查询,则编号递增.如下一条语句2个结果 mysql> explain select goods_id,goods_name from goods where 阅读全文
posted @ 2017-09-21 15:36 Microtiger 阅读(281) 评论(0) 推荐(0) 编辑
摘要:1.Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。 首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分 阅读全文
posted @ 2017-09-05 09:15 Microtiger 阅读(10218) 评论(0) 推荐(2) 编辑
摘要: 阅读全文
posted @ 2017-09-04 16:13 Microtiger 阅读(157) 评论(0) 推荐(0) 编辑
摘要:left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: 表A记录如下:aID aNum1 a200501112 a 阅读全文
posted @ 2017-08-25 17:16 Microtiger 阅读(163) 评论(0) 推荐(0) 编辑
摘要:select charindex( 'a ', 'bcad ') 1 删除女性数据2.SELECT * FROM Group2 where PATINDEX('%[吖-做]%',[Nick])=0 找出不包含中文汉字的记录 SELECT * FROM Group2 where not PATINDE 阅读全文
posted @ 2016-12-21 16:12 Microtiger 阅读(131) 评论(0) 推荐(0) 编辑
摘要:$sql="SELECT peisonghao FROM ecs_order_info_ly GROUP BY peisonghao HAVING COUNT(*) >1"; $rlt=$GLOBALS['db']->query($sql); while($data=$GLOBALS['db']-> 阅读全文
posted @ 2016-12-21 16:10 Microtiger 阅读(397) 评论(0) 推荐(0) 编辑
摘要:设置数据库的时候 qq 号如果用整型,设置成UNSIGNED,不然超过一定数值就错误 UPDATE `sao_qq` SET qq_num = REPLACE ( qq_num, '@qq.com', '' ); delete from sao_qq where qq_num not like '% 阅读全文
posted @ 2016-12-21 16:09 Microtiger 阅读(380) 评论(0) 推荐(0) 编辑
摘要:update user set host = '%' where user = 'root'; update user set password=password('wangxiaohu') where user='root'; update table1 SET title=replace(tit 阅读全文
posted @ 2016-12-21 16:09 Microtiger 阅读(124) 评论(0) 推荐(0) 编辑