【发布时间】:2016-06-13 23:17:12
【问题描述】:
我正在尝试更新名为位置的表上的大约 4 万条记录,总共 6 列。 4 万条记录分为 6 个类别中的 1 个。类别包括:列“Bin”值以“a”、“b”、“c”、“d”、“e”结尾,或以上都不是。
我编写了以下更新语句,目的是直接在服务器上的表上运行。
UPDATE locations
SET Division=1, Bin=LEFT(Bin, LENGTH(Bin)-1)
WHERE RIGHT(Bin, 1)='a';
UPDATE locations
SET Division=2, Bin=LEFT(Bin, LENGTH(Bin)-1)
WHERE RIGHT(Bin, 1)='b';
UPDATE locations
SET Division=3, Bin=LEFT(Bin, LENGTH(Bin)-1)
WHERE RIGHT(Bin, 1)='c';
UPDATE locations
SET Division=4, Bin=LEFT(Bin, LENGTH(Bin)-1)
WHERE RIGHT(Bin, 1)='d';
UPDATE locations
SET Division=5, Bin=LEFT(Bin, LENGTH(Bin)-1)
WHERE RIGHT(Bin, 1)='e';
我从来没有一次更新超过 1-5 条记录,我不确定是否有更好的方法来做到这一点。
我可以使用 php 进行一些编码,所以如果需要将它纳入一个解决方案,我愿意接受这个想法。
如果我遗漏了任何相关或需要的信息,请告诉我。感谢您的所有帮助!
【问题讨论】:
标签: mysql query-optimization mariadb