uti6770werty 最近的时间轴更新
uti6770werty

uti6770werty

V2EX 第 444609 号会员,加入于 2019-10-04 14:39:12 +08:00
re.split()分割正则匹配问题(保留字符?)
Python  •  uti6770werty  •  159 天前  •  最后回复来自 ho121
4
Mysql group by 然后再 order by,但不能按最新时间查询出来...
MySQL  •  uti6770werty  •  2021-06-01 10:37:44 AM  •  最后回复来自 zhaofq
22
请教一个 Mysql 条件更新语句,一句完成
MySQL  •  uti6770werty  •  2021-04-19 14:26:49 PM  •  最后回复来自 devswork
4
uti6770werty 最近回复了
@stephenyin 成功了,搞不懂为啥把变量放后面就可以。。。
@duke807 在两个步骤之间,我增加过一个 export 输出当前环境变量打印出来,
export PATH="$PATH:/usr/local/mysql/bin:/root"
这条在 shell 的运行过程中,确实没有应用上。。。
这是来显摆域名的吧?
我的情况是,触发器过于维护复杂,安置的时候很爽,但后面有变动就算有文档都变得困难。。。

最后,
INSERT INTO mcrun (starttime,loop,chckport,mcid,UpdateTime) VALUES ('2022-02-15 09:20:11','9','R','217',NOW())
ON DUPLICATE KEY UPDATE
`UpdateTime`=IF(`starttime`<>'2022-02-22 22:22:22',NOW(),`UpdateTime`),
`UpdateTime`=IF(`loop`<>'9' OR `loop` IS NULL,NOW(),`UpdateTime`),
`starttime`=IF(`starttime`<>'2022-02-22 22:22:22','2022-02-22 22:22:22',`starttime`),
`loop`=IF(`loop`<>'9' OR `loop` IS NULL),'9',`loop`);

算研究出来了,
逐个目标拆开写,细写,
我想的是,SET 的顺序优先考虑 UpdateTime 处理了,再去判断真正的数值,
这个逻辑在这个案例里够用,目前妥妥的正常,
不知道会不会有什么幺蛾子没预料会发生的。。。。
谢谢各位,我没有用 ORM 的方式去与数据库交互,至于自增 id ,其实也不需要去考虑的,因为数据的发展永远到不了极限。。。

我琢磨着试试写:
```
INSERT INTO mcrun (starttime,loop,chckport,mcid,UpdateTime) VALUES ('2022-02-15 09:20:11','9','R','217',NOW())
ON DUPLICATE KEY UPDATE `starttime`=IF(`starttime`<>'2022-02-22 22:22:22','2022-02-22 22:22:22',`starttime`),
`loop`=IF((`loop`<>'9' OR `loop` IS NULL),'9',`loop`),
`UpdateTime`=IF(`starttime`<>'2022-02-22 22:22:22' OR `loop`<>'9',NOW(),`UpdateTime`);
```

1 、starttime 和 loop 都能被逻辑识别和修改成功,
2 、主要是 UpdateTime ,好像条件没成立,也会被更新,是不是 SQL 语句做不了这么的逻辑判断?
也就是想把逻辑判断也做在 SQL 语句里
@zhoudaiyu [如果存在则更新除了 uniquekey 以外的数据] ,这个 SQL 是会把 UpdateTime 也更新过去的,数据没有变化的话
@ruanimal



搞了 N 天,我是试着把
POOL = PooledDB(
# creator=pymysql, # 使用链接数据库的模块
creator=MySQLdb, # 使用链接数据库的模块
换成了 MySQLdb 引擎后,SQL 语句的多句执行就正常了
搞不懂是怎么回事
目前执行语句量不大,也没看出会有什么幺蛾子。。。
@liprais PooledDB 的 connection 很奇怪的,它这里 600 只是最高允许 600 而已,我现在只是一台数据处理电脑向 MySQL 写数据而已,SHOW PROCESSLIST 看,也就 7,8 条连接
上面忘了说一个事情,就是就算是峰值 17W 条数据里也好,平时 5,6 千条也好,很多时候都队列的数据,是表里已经有的了,表的索引机制已经避免了重复插入数据,所以存表里的数据量其实不多的。。。

@liprais 8 核,16 线程,CentOS 6 + MySQL 5.5,按月份分表,最多的表数据不过 800 万
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4579 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 03:24 · PVG 11:24 · LAX 20:24 · JFK 23:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.