Database 板


LINE

※ 引述《jonce007》之铭言: : Query OK, 0 rows affected (0.00 sec) : Rows matched: 1 Changed: 0 Warnings: 0 : matched: 符合条件有1笔 : 因为要更改的值和原来一样,所以changed=0 : 先归零一下再跑: : update pb1 set opi=0, oyd=0, okg=0; : UPDATE pb1 join (select pbin, sum(opi) pi , sum(oyd) yd, sum(okg) kg from pb1 : where pbin='020417008' &&pbon<>'' group by pbin) AS pb2 ^^^^^^^^^ 你这边强制限制了pbin的范围 这样会让整体运算没有意义 另外 MySQL中 Changed: 0 的意思是 虽然有比对到符合资料 但是卸入後不会有任何"实际"改变 所以就会忽略写入 而 你刚刚的动作已经把020417008写入过一次 之後的命令 也只会产生020417008的一笔结果 所以就会没有改变 另外 MySQL中在MULTI UPDATE中 有一个使用限制 那就是被改变的TABLE 不可以以SELECT的形式 出现在SUB-QUERY中 如果违反规则 就会具体吐出错误讯息 一般来说 都必须用JOIN来处理 但是 到底怎样的动作算是违反规则 我还抓不出具体范围 目前我只知道 WHERE IN(SELECT), SET=(SELECT) 这两个都不行 剩下的还没试过 但是 不是每种动作都会有这种冲突 : SET pb1.opi=pb2.pi : , pb1.oyd=pb2.yd : , pb1.okg=pb2.kg : WHERE pb1.pbin=pb2.pbin && pb1.pbon=''; : Query OK, 1 row affected (0.00 sec) : Rows matched: 1 Changed: 1 Warnings: 0 : 所以只是我耍白痴,看不懂mysql讯息而己XD : ------------------------------------------------------------------------- : 我不懂的是: : 如果 : select pb1.pbin,pb2.pbin,pb1.ipi,pb1.iyd, pb1.ikg, pb2.pi, pb2.yd, pb2.kg : from pb1 join : (select pbin, sum(opi) pi , sum(oyd) yd, sum(okg) kg from pb1 : where pbon<>'' &&pb1.pbin='020417008'group by pbin) : AS pb2 on pb1.pbin=pb2.pbin : WHERE pb1.pbon='' ; : +-----------+-----------+------+------+------+------+------+------+ : | pbin | pbin | ipi | iyd | ikg | pi | yd | kg | : +-----------+-----------+------+------+------+------+------+------+ : | 020417008 | 020417008 | 51.0 | 6810 | 0.00 | 51.0 | 6810 | 0.00 | : +-----------+-----------+------+------+------+------+------+------+ : 得到我想到的数据, : 一模一样的句子拿来做update : update pb1 join : (select pbin, sum(opi) pi , sum(oyd) yd, sum(okg) kg from pb1 : where pbon<>'' &&pb1.pbin='020417008'group by pbin) : AS pb2 on pb1.pbin=pb2.pbin : set pb1.oyd=pb2.yd : ,pb1.opi=pb2.pi : ,pb1.okg=pb2.kg : WHERE pb1.pbon='' ; : 得到的却是: : Query OK, 0 rows affected (0.00 sec) : Rows matched: 1 Changed: 0 Warnings: 0 : matched 和 changed 的不同关键在那里? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.72.102
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1471186334.A.920.html







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP