
数据库
刘宇(成都golang求职中)
打雷要下雨
展开
-
Python3 封装 简单的数据库操作类 连贯操作
数据库操作是编程的常用功能我在使用其它语言的框架中,经常用到“连贯操作”.于是基于pymysql这一数据库包,造了一个易用的数据库操作类。原创 2023-02-22 10:28:13 · 451 阅读 · 0 评论 -
MySql 查询时 为NULL 设置默认值
我们在查询MySql 数据库时,如果使用比较复杂的查询方式,查询结果有时候会为空(NULL)。 大多数时候,我们会希望他有一个默认值。 对于这个默认值,一种办法是查询完成后用编程语言给他赋默认值。 然后Mysql给我们提供了一个更简单的办法 :IFNULL 函数# 示例 SELECT IFNULL(a,0) FROM table WHERE 1;这个sql 语句 为 查询结果a...原创 2018-06-07 21:48:28 · 30451 阅读 · 3 评论 -
MySql 查询同一字段多个结果合并到一行显示 GROUP_CONCAT
先直接给出代码:SELECT GROUP_CONCAT(tag) as tagsFROM table_tag tt WHERE tt.id in ('1','2')我们实现合并一个字段的多个结果用到了mysql 函数 GROUP_CONCAT,现有一个表 table_a 他有一个标签表 table_tag 结构如下:1.表 table_a : a_id:唯一标识……...原创 2018-03-15 21:32:21 · 9365 阅读 · 1 评论 -
Mysql 将一张表的数据插入到另一张表中
直接上代码INSERT INTO table_b (`b_1`,`b_2`,`b_3`) SELECT `a_1`,`a_2`,`a_3` FROM table_a WHERE 1 其中,表 table_a 的 a_1,a_2,a_3 字段分别对应表 table_b 的 b_1 ,b_2,b_3 字段...原创 2018-03-01 21:26:40 · 2206 阅读 · 2 评论 -
根据表中的时间戳字段统计每天数据的数量
我们在存数据的时候,经常会存下数据被写入或更新的时间备用。 今天遇到一个需要统计每天插入了多少数据的需求 实现的SQL 如下:select FROM_UNIXTIME(create_time/1000,'%Y-%m-%d')as date,COUNT(*) FROM table_1 where 1GROUP BY date;create_time/1000 是因为我存的时间戳...原创 2018-02-27 16:57:45 · 3539 阅读 · 0 评论 -
MySql 删除表中重复的数据(但要保留一条)
今天遇到一个问题。相同的数据在同一张表里出现了多次。我的需求是删除多余的数据,但要保留其中一条。 定义 表明 table_a ,判断唯一的两个字段 c_1,c_2,无关字段data 表中原始数据如下 首先我们要查看数据库中那些数据重复了,执行如下SQLSELECT * FROM (SELECT COUNT(*) as num,c_1,c_2 FROM table_a GROUP原创 2018-01-19 14:18:54 · 28049 阅读 · 16 评论 -
MySql 查询小数保留两位小数
问题 :有一张表 table_a ,它有字段 c_1,c_2 都是数字类型的,现在想求一行中 c_2 字段占 c_1 字段的百分比,要求小数点后保留两位 SELECT FORMAT((a.c_2/a.c_1)*100,2) FROM table_a a where 1;其中 FORMAT 函数中的2 表示保留小数点后两位原创 2018-02-01 17:25:17 · 3277 阅读 · 0 评论 -
SQL 统计表 b 对应表a个数,并赋值给表a的一个字段
最近遇到这么个问题表a : 歌单表 music_list表b : 歌曲详情表 music_detail一个歌单对应多个歌曲详情,但在表的设计时,没有考虑到在 music_list 设置一个字段标记对应的 music_detail数据条数。在数据已经入库了之后,同事修改了功能需求。通过测试发现,如果每次使用的时候才在sql中统计歌单music_list 对应的歌曲详情music_det原创 2018-01-15 10:27:52 · 1501 阅读 · 0 评论 -
python封装一个效率极高的 批量更新、插入合一的工具
我在写爬虫的时候,经常会获取大量的数据。这个时候大量数据的数据库操作如果不做一定的优化的话,将会耗费大量的时间。通过实践我发现,批量的数据操作将会极大的提高数据库操作的效率。同时,很多时候存在数据如果存在做更新操作,如果数据不存在,做插入插入操作的情况。于是我造了一个只需传入一个数组,就会自动更新或插入数据的工具。 实测以下方法操作几十万条数据只需要几秒到十几秒 以下为代码:#说明:#使用时直原创 2017-10-23 20:19:41 · 2758 阅读 · 0 评论 -
python2 去除 字符串中emoji 符号,去除所有4字节utf8字符
对咱们天朝程序员来说,最常用的编码方式就是UTF-8了。大家在创建数据库的时候,总是条件反射选择UTF-8编码。 最近我遇到一个emoji 符号不能写入数据库得问题。通过查询资料得知,emoji 符号占据4个字符长度,而MySQL的utf-8编码只能写入最多3个字节的字符。想要写入emoji 符号,需要将数据库的编码方式改为 utf8mb4 。 然而,我这张表是一张比较老的表,其中存了很多的数据原创 2017-10-23 18:09:26 · 7347 阅读 · 0 评论 -
Mysql 查询一天中每半小时记录的数量
SELECT HOUR(e.time)as Hour,FLOOR(MINUTE(e.time)/30) as M, COUNT(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY FLOOR(MINUTE(e.time)/30),HOUR(e.time) ORDER BY Hour(e.time);floor函数原创 2017-09-06 11:50:08 · 17323 阅读 · 3 评论 -
Mysql 查询一天中,每个小时数据的数量
SELECT HOUR(e.time) as Hour,count(*) as Count FROM error_log e WHERE e.date = '2017-09-02' GROUP BY HOUR(e.time) ORDER BY Hour(e.time);下面是查询结果截图 在另一篇文章里,我总结了查询每半小时统计一次的方法。Mysql...原创 2017-09-05 21:28:12 · 37892 阅读 · 19 评论 -
MySql 中 一次update更新多条数据
我最近遇到一个导入Excel表中数据到数据库的需求,数据量一万多条。需先查询数据库中是否存在要插入的数据,若存在则更新数据,否则插入数据。我首先按照常规思路先查询,然后插入或更新。然而nginx返回 504 time out 错误。显然,数据库操作消耗了太多的时间。经测试,该操作消耗了300多秒时间。显然,数据库需要做一些优化。我首先想到给要查询的字段加索引。经测试加索引后测试,完成一次操作耗...原创 2017-06-16 14:50:25 · 24721 阅读 · 0 评论