如何在不用存储过程只用普通的sql的情况下插入一个月的数据

Listening_倾听 2018-01-03 04:55:56
比如有一个表有一个日期字段,在创建的时候就要根据当前时间往前推一个月插入30条数据。
类似得到下面这样的数据,中间省略了,实际要得到30天的数据

...全文
253 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_42666852 2018-08-08
  • 打赏
  • 举报
回复
INSERT INTO tb(日期字段)
SELECT NOW() + INTERVAL (@i:=@i+1) DAY as date
FROM information_schema.tables, (SELECT @i:=-1) X
WHERE @i < 29
Listening_倾听 2018-01-03
  • 打赏
  • 举报
回复
引用 1 楼 zjcxc 的回复:
INSERT INTO tb(日期字段)
SELECT NOW() + INTERVAL (@i:=@i+1) DAY as date
FROM information_schema.tables, (SELECT @i:=-1) X
WHERE @i < 29
终于看懂了,@i 这种语法是用来声明一个变量的,:= 是一种赋值写法。用到 information_schema.tables 主要是为了得到一个行数来生成递增序列,只能说是一个折中的办法,如果需要1000条日期数就行不通了。,还是多谢了。
Listening_倾听 2018-01-03
  • 打赏
  • 举报
回复
引用 1 楼 zjcxc 的回复:
INSERT INTO tb(日期字段)
SELECT NOW() + INTERVAL (@i:=@i+1) DAY as date
FROM information_schema.tables, (SELECT @i:=-1) X
WHERE @i < 29
多谢,mysql居然还有这么高级的语句,能不能解释一下从select 开始是什么意思呢,或者告诉我这是属于那一块知识的,都没有查到过这类的东西。
zjcxc 2018-01-03
  • 打赏
  • 举报
回复
INSERT INTO tb(日期字段)
SELECT NOW() + INTERVAL (@i:=@i+1) DAY as date
FROM information_schema.tables, (SELECT @i:=-1) X
WHERE @i < 29

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧