mysql查询当天所有数据sql语句、查询数据表中的记录

用select查询数据表中的记录 

select 语句的基本语法如下:

select selection_list 选择那些列

from table_list 从那个表去选择行

where primary_constraint  行必须满足的条件

group by grouping_columns  对结果如何分组

having secondary_constraint  行必须满足的第二条件

order by sorting_colums 对结果如何排序

limit count 结果限定

注意: 所有使用的关键词必须精确地以上面的顺序给出, 例如, 一个having子句必须跟在 groug by子句之后和order by子句之前.

一. 普通查询

1. 检索出表中所有的数据

mysql>select * from pet;

注: 检索出pet表中所有的数据

2. 查询特定的行

mysql>select * from pet where name="Bowser";

注: 检索出pet表中, name等于"Bowser" 的这行数据

3. 查询特定的列

select name,birth from pet where owner="Gwen";

注: 在pet表中, 选择 owner 为"Gwen" 的那行, 只检索出这一行的name 和 birth 两列数据.

二. 条件查询

1. 大于/小于 条件(<,>,=)

mysql>select * from pet where age>="5";

注:  在pet表中, 检索出age大于等于5 的所有数据

2. 组合条件(and/or)

mysql>select * from pet where age>=5 and sex="f";

注: 在pet表中, 检索出age大于等于5并且sex为"f"的所有的数据. 

mysql>select from * from pet where age >="5" or sex="f";

注: 在pet表中, 检索出age大于等于5 或者sex为"f"的所有数据 

mysql>select * from pet where (age>"5" and sex="f") or (name="tom" and sex="m");

 注: 在pet表中, 检出出 age大于5 并且sex为"f" 或者 name为"tom"并且sex为"m"的所有的数据;

 三. 查询排序

格式为: order by column_name [asc/desc] [...]

注: asc表示升序, 为默认值, desc为降序. order by不能按text,text和image数据类型进行排序,

mysql>select name,birth from pet order by birth;

注: 在pet表中, 检索出name和birth这两列, 并且按birth以升序排列.

mysql>select name,birth from pet order by birth desc;

注: 在pet表中, 检索出name和birth这两列, 并且按birth以降序排列.

mysql>select name, age from pet order by name,birth;

注:在pet表中, 检索出name和age的这两列的数据, 并先按name来排序, 后再按birth来排序.



SQL Server 中使用top查询前n行数据,语法规则为:

SELECT TOP number|percent column_name(s) FROM table_name

而在MySQL中使用的是limit:

SELECT column_name(s) FROM table_name LIMIT number 

例子:

SELECT * FROM keywordtable limit 0,4;

SELECT * FROM keywordtable limit 1,4;

在第一条语句中0可以省略,默认是从第一条开始。第二条语句查询 的是2、3、4条数据。


mysql 查询第几行到第几行记录的语句
1、查询第一行记录: 
select * from table limit 1 
2、查询第n行到第m行记录 
select * from table1 limit n-1,m-n; 
SELECT * FROM table LIMIT 5,10;返回第6行到第15行的记录 
select * from employee limit 3,1; // 返回第4行 
3、查询前n行记录 
select * from table1 limit 0,n; 
或 
select * from table1 limit n; 
4、查询后n行记录 
select * from table1 order by column(如 id/time/...) desc limit n;//倒序排序,取前n行 id为自增形式 
5、查询一条记录($id)的下一条记录 
select * from table1 where id>$id order by id desc limit 1 
6、查询一条记录($id)的上一条记录 
select * from table1 where id<$id order by id desc limit 1



mysql查询当天的所有信息:

  代码如下

  select * from test where year(regdate)=year(now()) and month(regdate)=month(now()) and day(regdate)=day(now())

  这个有一些繁琐,还有简单的写法:

  代码如下

  select * from table where date(regdate) = curdate();

  另一种写法没测试过

  查询当天的记录

  代码如下

  select * from hb_article_view where TO_DAYS(hb_AddTime) = TO_DAYS(NOW())

  date()函数获取日期部分, 扔掉时间部分,然后与当前日期比较即可

  补充:本周、上周、本月、上个月份的数据

  查询当前这周的数据

  代码如下

  SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());

  查询上周的数据

  代码如下

  SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;

  查询当前月份的数据

  select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')

  查询距离当前现在6个月的数据

  代码如下

  select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();

  查询上个月的数据

  代码如下

  select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')

  select * from `user` where DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ;

  select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now())

  select *

  from user

  where MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now())

  select *

  from [user]

  where YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now())

  and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now())

  select *

  from [user]

  where pudate between 上月最后一天

  and 下月第一天

  mysql查询多少秒内的数据

  代码如下

  SELECT count( * ) AS c, sum( if( logusertype =2, logusertype, 0 ) ) /2 AS a, sum( if( logusertype =3, logusertype, 0 ) ) /3 AS b

  FROM testlog WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP( logendtime )<=30

  查询30秒内记录的总数,loguser等于2的记录的总数和,和 loguser等于3的记录的总数.

  if( logusertype =2, logusertype, 0 ) 如果logusetype等于2 就在logusertype上累加,否则加0。

  sum( if( logusertype =2, logusertype, 0 ) ) 把logusertype都累加起来。

  sum( if( logusertype =2, logusertype, 0 ) ) /2 AS a, 除以2是统计个数。

  UNIX_TIMESTAMP(NOW())计算当前时间的秒数,

  UNIX_TIMESTAMP( logendtime )计算logendtime的秒数

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值