mysql语句求解释,下面的求高手讲解,初学者,看不懂(*^__^*) 嘻嘻……

mysql语句求解释,下面的求高手讲解,初学者,看不懂(*^__^*) 嘻嘻……,第1张

一层一层解释吧.

首先, 最外面那层

SELECT * FROM `table`

WHERE id >= ...

ORDER BY id LIMIT 1

是查询 `table` 表, 要求 id 大于 那个 ...

然后 ORDER BY id , 是要求查询结果,按照 id 排序。 从小到大。

LIMIT 1 是 只返回查询结果的第一行。

------

如果上面的看明白了,那么下面开始说说子查询里面的处理

(SELECT

floor( RAND() * (

(SELECT MAX(id) FROM `table`) -

(SELECT MIN(id) FROM `table`)

) + (SELECT MIN(id) FROM `table`)

)

)

floor 是 向下取整

例子:

mysql>SELECT FLOOR(-23.5), FLOOR(23.5)

+--------------+-------------+

| FLOOR(-23.5) | FLOOR(23.5) |

+--------------+-------------+

| -24 | 23 |

+--------------+-------------+

1 row in set (0.00 sec)

RAND 是随机数

RAND()

返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。

MAX(id) 与 MIN(id) 是 查询 表里面 最大的 id 与 最小的 id.

逻辑看下来, sql 的功能, 有点像是, 从 `table` 表, 随机获取一条数据。

其实没必要这么麻烦。

简单的写:

SELECT * FROM `table`

ORDER BY RAND()

LIMIT 1

就可以实现了。

CURDATE() 函数返回当前的日期

DATE_SUB() 函数从日期减去指定的时间间隔

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据 %w周的天 (0=星期日, 6=星期六)

DATE_ADD() 函数向日期添加指定的时间间隔 INTERVAL 6 DAY就是加6天

也就是说这个查询的是上周一到上周日的时间段

grant process,super,replication client on *.* to ¨cacti¨@¨10.0.0.116¨ identified by ¨cacti¨

这是个权限赋值的语法

process,super,replication client 这三个分别是权限名:

process:具有查看当前运行的sql的权限 ,以及explain执行计划

super:杀死mysql中连接的进程,设置全局变量,重置主从配置的权限

replication client :指定主从权限

整句sql的意思就是说,把以上三个权限赋给cacti账户,但是只有是10.0.0.116上的客户端通过cacti账户连接才有这些权限,作用域是全局,连接密码也是cacti(identified by ¨cacti),这里是设置密码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8665211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存