首页
关于
Search
1
在投射和录制时显示敏感信息写给TeamViewer,anydesk,向日葵
8,614 阅读
2
sublime 3155-3175 LICENSE
7,910 阅读
3
mysql存储过程&时间累加插入
7,753 阅读
4
永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。
4,486 阅读
5
mysql-workbench中duration fetch的含义
4,460 阅读
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
登录
Search
标签搜索
mysql
curl
grep
journalctl
rename
You can't specify target table
only_full_group_by
Sub-process
警示
dropbox
mtr
curl抓取重定向
floor
intval
ceil
round
pixmap
adwaita
date.utc
gmmktime
五好的Book
累计撰写
194
篇文章
累计收到
31
条评论
首页
栏目
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
页面
关于
搜索到
48
篇与
的结果
2021-12-23
使用mysql workbench 来管理复用自己的SQL语句
在日常开发中,经常有需要调取数据做一定的分析的需求,但是这个需求只是偶然或者很少,但是又会有周期性的需要,我们一般是直接从数据库调取数据, 没有把相关需求做到程序中去。这样以来,每次有这样的需求的时候就要重复写相应的SQL,时间一久难免会忘记,又需要重新构思sql语句,其实mysql workbench 就有一个很好的功能来帮助我们管理和复用这些SQL。现在来看看把:标号1 为添加收藏的按钮,点击后会弹出 保存 搜藏的对话框,确认备注名称 标号2 为自己收藏的语句,点击下拉框还可以看系统标记的其他快捷SQL 标号3 可以将自己的语句插入到左侧的编辑器,或者导出sql 标号4 即为自己收藏的语句,可以点进去 复用。 以下为其他自带的sql代码片段还有一个 就是通过ssh 内网登录 设置方法如下:更多实用功能自己体验把!
2021年12月23日
827 阅读
1 评论
0 点赞
2021-12-15
凭空select出连续的日期数据
我们在做数据统计的时候, 尤其按照特定的日期序列得到数据,每天都要展示没有的展示0,这个时候如果我们group by日期,很容易就得到我们的数据了。但是每天都要展示, 没有的用0填充,这可有点不好办,那么有什么办法可以实现这样的需求呢。方法1: 创建一个日期表,把group by的数据 join 对应的日期,那么就可以实现需求了,nice!如创建 date表(每天写一条日期数据)select a.dt,rmb from date d join left( select from_unixtime(ctime,'%Y-%m-%d')dt,sum(Rmb)rmb from Table group by dt)a on d.dt=a.dt; 方法2: 不需要创建date表,直接凭空生成连续的日期~方法参考stackoverflow的大神。 select Days from ( SELECT curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY AS Days FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c )aa WHERE aa.Days >= '2021-12-10' - INTERVAL 30 DAY order by Days limit 30 该语句执行后得到从 2021-12-10开始之前的30天内的日期值,需要其他日期自己灵活运用就行了。同样的 结合方法1:date表的内容 被上述sql替代即可,very nice!方法3:mysql8+才支持,缩短了方法2的语句 with recursive all_dates(dt) as ( select '2021-12-1' dt union all select dt + interval 1 day from all_dates where dt + interval 1 day <= '2021-12-15' ) select * from all_dates very very nice!具体应用场景 如下图:
2021年12月15日
988 阅读
0 评论
0 点赞
2021-12-13
看我如何解决自增ID带来的麻烦
自增ID还有麻烦?有啊, 自增可预测,很方便采集的人员。如何解决这种麻烦呢?看我运用 mysql的函数,视图来解决这个问题。上代码:CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`%` SQL SECURITY DEFINER VIEW `txt_ms` AS SELECT 相关字段, CAID(`txt`.`id`) AS `mid` FROM `txt` WHERE (`txt`.`status` = 1) 视图txt_ms创建好后,调数据 就像调 txt 一样,只是多了一个 字段 mid,而mid 是通过自定义函数 CAID得到的CAID的代码:由于代码避免敏感,需要按照自建的算法来生成 这里就不写了, 自定函数的方法 可以参考mysql函数的应用
2021年12月13日
662 阅读
0 评论
0 点赞
2021-12-10
mysql8 安装与更改datadir数据目录
先上一张安装过程的输出日志:sudo apt install mysql-server 完全干净的删除 mysql 用sudo apt remove mysql* --purge 从日志来看, 安装过程中,显示创建一个root帐号然后 因为IO interfaces failed和mysqlx.sock failed 重启 逐个解决了这2个问题后安装并且启动完成。 现在我们来讲讲更改datadir的操作,经过卸载重安装多次循环操作后掌握了其更改datadir的核心技术^_^关于更改datadir 之前我有做过记录mysql 8 更改数据存放目录,不过现在再用这个办法已经不适用了,于是乎有了这新的篇章。 vi /etc/mysql/mysql.conf.d/mysqld.cnf 增加 datadir 的设置 如设置为:datadir = /data/mydata/ 设置好后 :x 或者:wq 保存退出这次其实就多了一步 就是设置 apparmor 设置好这里的别名,设置后就好了。vi /etc/apparmor.d/tunables/alias 打开后插入一行 如下:/data/mydata/ 为你希望的datadir alias /var/lib/mysql/ -> /data/mydata/, 值得注意的是:上面那个逗号不能少设置好后 :x 或者:wq 保存退出sudo systemctl restart apparmor 或者sudo service apparmor restart 然后初始化一下sudo mysqld --initialize 或者sudo mysqld --initialize-insecure --initialize-insecure 将初始化一个没有密码的root帐号最后 启动 mysqlsudo service mysql start
2021年12月10日
707 阅读
0 评论
0 点赞
2021-12-08
mysql之函数的应用
先上代码DELIMITER $$ CREATE DEFINER=`root`@`%` FUNCTION `aa`(ids int,tim varchar(16)) RETURNS int(11) BEGIN declare aaa int; if tim>0 then set @tim=tim; set @st = UNIX_TIMESTAMP(@tim); set @et=UNIX_TIMESTAMP(DATE_ADD(@tim, INTERVAL 1 MONTH)); select sum(m) into aaa from( SELECT `money_out`.`bid` AS `bid`, (SUM(`money_out`.`money`) / 100) AS `m` FROM `money_out` where bid=ids and ctime>=@st and ctime<@et union select `money_out_book`.`bid` AS `bid`, (SUM(`money_out_book`.`money`) / 100) AS `m` FROM `money_out_book` where bid=ids and ctime>=@st and ctime<@et) a; else select sum(m) into aaa from( SELECT `money_out`.`bid` AS `bid`, (SUM(`money_out`.`money`) / 100) AS `m` FROM `money_out` where bid=ids union select `money_out_book`.`bid` AS `bid`, (SUM(`money_out_book`.`money`) / 100) AS `m` FROM `money_out_book` where bid=ids) a; end if; RETURN aaa; END$$ DELIMITER ; 功能:该函数...先不说。 CREATE DEFINER=`root`@`%` FUNCTION `aa`(ids int,tim varchar(16)) RETURNS int(11) 创建一个函数名称是 aa 可以接收 2个参数 ids,和 tim 返回 一个整型的数据。 declare aaa int; 定义一个变量set @tim=tim; set @st = UNIX_TIMESTAMP(@tim); set @et=UNIX_TIMESTAMP(DATE_ADD(@tim, INTERVAL 1 MONTH)); 输入参数的传递 与转换select sum(m) into aaa from(...) tmp 把查询到的数据写入到变量 aaaRETURN aaa; 返回aaaOK,这个函数的功能是 计算给定的 书ID和时间 返回 对应的 的消费情况。如果有时间输入 则返回指定时间的数据, 否则返回该书所有的数据。这里是关于mysql 触发器的应用
2021年12月08日
720 阅读
0 评论
0 点赞
1
2
3
...
10