sql
万事顺遂~
这个作者很懒,什么都没留下…
展开
-
mysql between and 遇到日期查询边界问题
最近实现一个按日期范围查询列表,例如输入的是日期 2015-11-01到2015-11-03,想得到1号到3号的数据,执行 select * from table wherecreate_date between '2015-11-01' and '2015-11-03' 结果是1号到2号的数据,这是因为时间范围是1号0时0分0秒到3号0时0分0秒之间的数据,只需要把后面的日期加一天即可。修改,使用date_add方法select * from table wherecreate_dat..转载 2020-09-18 14:15:04 · 622 阅读 · 0 评论 -
GROUP_CONCAT()函数使用说明
mysql支持的GROUP_CONCAT()函数可用于拼接属于同一组的多个字符串,而且该函数支持对需要拼接的字段进行DISTINCT ORDER BY等一系列操作原创 2020-06-05 14:46:17 · 516 阅读 · 0 评论 -
mysql笛卡尔积--多对多现象
现在我们假设有三张表,c表--学校表,s表--学生表,t表--教师表,s表主键id和t表主键id不重复,s表和t表各有一个字段c_id与c表主键id关联,此时,我们以c为主表,查询学校的教师和学生信息,select c.id,s.id,t.id from c join s on c.id = s.c_id join t on c.id=t.c_id;我们都知道,一个学校有多个老师,...原创 2019-03-22 11:43:09 · 1650 阅读 · 0 评论 -
MySQL报错:This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME
最近使用MySQL5.6查询表的前几条数据,使用了limit语句,结果出现错误:This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery';查询资料发现是内层select语句不能带有limit语句,如下:select t1.*from t1where t1.id in (selec...转载 2019-04-10 19:08:49 · 1174 阅读 · 0 评论 -
关于执行的优先级问题
今天写sql的时候遇到一个问题,憋了一下午的时间也没搞定,写在这里记录下用学生和课程举例说明,如果说一个学生他不仅选修了足球还选修了羽毛球,假设这个学生所在的班级的同学共36人,只有他一人选修了足球的同事又选修了羽毛球,剩余35人选修的不是足球就就是羽毛球,此时我们将选择了足球的标记为1,选择了羽毛球的标记为2,将这个两者都选了的同学标记为3casewhen 学生选修课程=足...原创 2019-04-17 20:32:51 · 439 阅读 · 0 评论 -
字符串的拼接需要间隔符的时候
mysql、sqlserve、orcale均支持concat拼接字符串的函数,而sqllite却不支持该函数,sqllite数据库使用的是||比如说person表的姓氏xs为一个字段,性名xm为一个字段,现在将他们拼接为一个xmxs,使用空格分隔在mysql、sqlserve、orcale中我们可以这样做:select concat(xm,' ',xs) as name from p...原创 2019-04-18 14:47:07 · 940 阅读 · 0 评论 -
创建一个表的同时并导入另一个表的数据
现有表 a,接下来我想要创建一个b表并将a表中的数导入b表,在mysql中我可以这样做,CREATE TABLE IF NOT EXISTES b SELECT * FROM a;而在sqllite数据库中适用mysql的语法却不在适用,有了一些微小的差异,CREATE TABLE IF NOT EXISTES b AS SELECT * FROM a;...原创 2019-04-18 15:15:01 · 3696 阅读 · 0 评论 -
如果一个sql涉及到了两个数据库
当一个sql涉及到了两个数据库,选择其中一个数据库,即当前实例,然后当需要连接另一个数据库的表的时候也就是另一个实例,需要添加库名前缀,即:当前库的表 JOIN另一个数据库名.另一个数据库的数据表 ON连表条件希望对大家有帮助,如果还有什么困惑的地方可以留言...原创 2019-05-09 21:13:48 · 1046 阅读 · 0 评论 -
分页
在sql分页中进行总条数计算的时候如果关联的表在where后面没有相应的筛选条件并且和该表之前的表的连接是一对一连接,代表该表可以去掉而且不会影响总的记录条数并且可以提高执行效率,当关联的表在where后面没有响应的筛选条件但是却还是会对之前的表的关联造成影响(涉及到group by分组的地方)可以有两种方式解决:解决方法一:在count函数中增加distince去重,将重复的数据去掉...原创 2019-05-17 10:53:56 · 85 阅读 · 0 评论