我在mysql的表中有一个二进制列。例如,我需要更新所有行。
用1替换2字节,不管值是多少。
SELECT HEX(data) FROM table;然后
UPDATE table SET data[1] = 1; // the idea但是,如何在mysql中实现这样的功能呢?
发布于 2015-02-15 08:15:22
这是你怎么做的。首先用hex函数得到二进制表示。然后,在返回的值上,使用substring和concat函数将第二个值替换为1,最后更新。
下面是一个例子。
CREATE TABLE t (c BINARY(10));
INSERT INTO t SET c = 'b';
select (HEX(c)) from t;
62000000000000000000
SELECT concat(
substring(HEX(c),1,1),
'1',
substring(HEX(c),3,length(HEX(c)))
)
from t
61000000000000000000现在,将所有内容放在更新命令中将替换值。
update t set c = unhex(
concat(
substring(HEX(c),1,1),
'1',
substring(HEX(c),3,length(HEX(c)))
)
);
select (HEX(c)) from t;
61000000000000000000https://stackoverflow.com/questions/28523795
复制相似问题