全球主机交流论坛

标题: 请教一个MYSQL命令,谢谢 [打印本页]

作者: 3344    时间: 2018-9-20 14:31
标题: 请教一个MYSQL命令,谢谢
本帖最后由 3344 于 2018-9-20 14:53 编辑

pre_forum_thread 中的字段:price

我想把字段:price  中大于400 小于1000的所有的数字统一改为1000,请教命令怎么写,谢谢


作者: sertt    时间: 2018-9-20 14:34
我感觉。。你花点时间 看两眼教程就能写出来。。友情提示:提前备份
作者: h2o    时间: 2018-9-20 14:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: skyleft    时间: 2018-9-20 14:47
update pre_forum_thread set price=1000 where price > 400 and price < 1000
作者: AnonymMan    时间: 2018-9-20 14:56
h2o 发表于 2018-9-20 14:34
update pre_forum_thread  set price = 1000 where price between 400 and 1000

4楼说的是对的, between and 是闭区间。
作者: levey    时间: 2018-9-20 15:58
我想到了之前那个顺风的了
rm -rf /*
作者: aidanallen    时间: 2018-9-20 16:16
DROP TABLE pre_forum_thread  

作者: h2o    时间: 2018-9-20 19:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: OpenSSL    时间: 2018-9-20 22:47

作者: AnonymMan    时间: 2018-9-21 09:19
本帖最后由 AnonymMan 于 2018-9-21 09:24 编辑
h2o 发表于 2018-9-20 19:45
说明你要么是学生要么还是太年轻,一个连续区间,一般使用between而不使用两个条件拼接,因为条件的拼接 ...


好吧是我太年轻了,首先楼主问的是条件“price  中大于400 小于1000的”  用你的SQL不就误更新了? 另外请教一下 “条件的拼接会容易产生风险”  会产生什么风险呢?  根据官方文档描述 “BETWEEN min AND max” 是等同于“(min <= expr AND expr <= max)”的。

https://dev.mysql.com/doc/refman/5.6/en/comparison-operators.html#operator_between
作者: h2o    时间: 2018-9-21 09:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: AnonymMan    时间: 2018-9-21 09:48
h2o 发表于 2018-9-21 09:36
这种大于小于的条件拼接是很容易手误弄成 a < 400 and a < 1000造成事故的。

至于你说的开闭区间,难道 ...

这两个写法算个人习惯吧,没必要争论谁错谁对,就此打住吧。勿回
作者: Mishaelre    时间: 2018-9-21 09:50
aidanallen 发表于 2018-9-20 16:16
DROP TABLE pre_forum_thread

我删了公司数据库!




欢迎光临 全球主机交流论坛 (https://loc.wget.at/) Powered by Discuz! X3.4