
MYSQL
dujianxiong
这个作者很懒,什么都没留下…
展开
-
[MYSQL]如何并发查询并更新
【场景】多个应用实例,不约而同地从数据库查询哪些任务未被执行,然后更新这些任务的状态字段为“正在执行”。(简述,多个消费者争领任务,同时需要宣布哪个任务被自己领取,而不至于让多个消费者重复领取同一个任务) 方案一:SELECT FOR UPDATE(糟糕的方案╮(╯﹏╰)╭)SELECT FOR UPDATE 这个语句貌似很适合并发查询并更新的场景,因为它会自动上锁原创 2017-02-03 19:46:16 · 10190 阅读 · 0 评论 -
Mysql命令窗口selcct记录行换行显示
在mysql命令窗口里敲命令,查询结果打印出来,一大坨东西,具体哪个值对应哪个字段,肉眼非常难找。如下:解决方法:在命令末尾;号前添加\Gmysql命令窗口会一行一个字段显示查询结果,这样方便多了,只是如果记录太多,要滚好多屏 ,建议尽量limit一下。...原创 2019-06-04 17:12:05 · 4358 阅读 · 0 评论 -
Mysql 锁、事务强制手动kill/释放
1、查看数据库当前的进程,看一下有无正在执行的慢SQL记录线程。mysql> show processlist;2、查看当前的事务当前运行的所有事务mysql> SELECT * FROM information_schema.INNODB_TRX;当前出现的锁mysql> SELECT * FROM information_schema.INNO...原创 2019-06-04 15:51:13 · 23668 阅读 · 4 评论 -
[MYSQL] 查询数据库中字段含特定字符串的表
SELECT `COLUMN_NAME`, `TABLE_NAME`FROM `INFORMATION_SCHEMA`.`COLUMNS`WHERE `TABLE_SCHEMA` = '表名' AND `COLUMN_NAME` LIKE '%包含字符串%'原创 2019-04-08 14:55:02 · 2605 阅读 · 0 评论 -
mysql排序使null结果排最后
参考:https://stackoverflow.com/questions/2051602/mysql-orderby-a-number-nulls-lastmysql排序使null结果排最后,亲测两种方法可行。 第一种方法:SELECT sort FROM `atable` ORDER BY -sort DESC;Mysql有个官方文档里没有说出的语法,可以把null结果...翻译 2019-02-27 15:14:47 · 17427 阅读 · 5 评论 -
Mysql的float类型sum出现多位不精确小数
方法一:最好的办法是将float字段改为decimal(16,6)。 方法二:使用binary关键字解决。具体操作为“select sum(binary 字段名(float类型))” SELECT SUM(BINARY(sign.order_amount)) AS phone_signup_amount, FROM `t_newsky_sign_up_wx` `sign` ...原创 2018-06-29 15:44:29 · 8510 阅读 · 0 评论 -
Mysql 添加用户
1、添加用户CREATE USER 'test'@'%' IDENTIFIED BY '123456' ;%字符是一个通配符,表示“任意一台主机”都可以用 test用户连接。但这不是安全的,建议把%修改为限制的IP地址 或localhost。2、对用户授权GRANT ALL ON *.* TO 'test'@'%' ;(1) ON *.* 表示“所有数据库和它们里面的所有对...原创 2018-04-08 10:02:07 · 629 阅读 · 0 评论 -
Mysql不支持FULL JOIN怎么办?
Mysql不支持FULL JOIN怎么办?方法是使用 UNION ALL 模拟全连接,但有技巧。 SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id UNION ALL SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id WHERE t1.id IS NULL如果, 要SELECT的不是...原创 2018-02-23 12:01:07 · 15040 阅读 · 3 评论 -
Mysql统计时间段内的用户(去重)
SELECT b.*FROM vip_report_vip_income b INNER JOIN (SELECT * FROM (SELECT a.* FROM vip_report_vip_income a WHERE 1 = 1 AND a.game_id = 1005 AND YEARWEEK(a.`report_date`, 1) >= YEAR...原创 2018-02-26 16:32:11 · 6395 阅读 · 0 评论 -
JDBC的tinyInt1isBit
TinyInt转换规则JAVA数据类型 和 MYSQL的数据类型转换,要注意tinyInt 类型,且存储长度为1的情况。MYSQL官方的JDBC文档定义转换规则如下:MySQL Types to Java Types for ResultSet.getObject():TINYINTTINYINTjava.lang.Boolean i原创 2017-03-06 10:23:02 · 12113 阅读 · 0 评论 -
升级Mysql5.6,时间被四舍五入
元数据结尾转至元数据起始生产环境升级Mysql 5.6.35 版本后,某接口频繁出现检查modifyTime不匹配的情况。排查后,发现DB表里的modifyTime 比Java程序生成的modifyTime多了1秒。例子 数据表里的create_time是: 2017-02-17 10:54:48.0 (第一次插入时,modify_t原创 2017-03-06 10:21:38 · 4182 阅读 · 0 评论 -
Mysql统计所有表数据量
SELECT TABLE_NAME, TABLE_ROWS FROM `information_schema`.`tables` WHERE `table_schema` = 'YOUR_DB_NAME';说明:以上语句得出的行统计数量,并不精确,是一个大约估计的数量原创 2017-02-03 19:53:25 · 17030 阅读 · 0 评论 -
Mysql Union 联合查询的使用
语法:SELECT ...UNION [ALL | DISTINCT] SELECT ...[UNION [ALL | DISTINCT] SELECT ...]UNION 的作用是把多个SELECT语句的结果合并为一个结果集。UNION查询返回的列名,以第一个SELECT语句的列名命名。UNION,是UNION DISTINCT的简写,默认过滤重复行。一般建议使用UNION原创 2017-02-03 19:51:28 · 695 阅读 · 0 评论 -
Mysql profile分析查询
1、执行SQL12、 SHOW PROFILES;3、 SHOW PROFILE FOR QUERY 125;原创 2017-02-03 19:50:18 · 315 阅读 · 0 评论 -
MYSQL字符数字混合排序,类似书的章节目录排序
上sqlSELECT serial_number serialNum,CAST(SUBSTRING_INDEX(serial_number,'.',1) AS UNSIGNED) AS grade_1,IF((LENGTH(serial_number)-LENGTH(REPLACE(serial_number,'.','')))>=1 ,CAST(SUBSTRING_INDEX(S...原创 2019-09-04 15:59:40 · 876 阅读 · 1 评论