0

第二个表是使用整数而不是字符串错误构造的。原始表使用了一个字符串。(字段的字符串是压缩到一个字段中的其他三个数字 ID 的混合物)

事实证明,使用 int-to-string 链接到另一个表存在问题。我想将第二个表中的字段从整数更改为字符串,并在现有整数前面添加前缀“00”(零-零) - 现在是一个字符串。这是两者之间的唯一区别。

我猜我可能可以将两者与“LIKE”匹配,但想要完全匹配,这应该是一次性修复。

谢谢!

快活

4

3 回答 3

0

假设 MySql 你想首先改变你的列的数据类型,像这样

ALTER TABLE tab MODIFY COLUMN IDBoth VARCHAR(10); -- or what ever size is needed

然后使用这样的 concat 进行更新:

UPDATE TAB as t1
JOIN tab as t2
ON t1.id1 = t2.id2 -- Add additionation join criteria if needed to get right join
SET t1.IDBOTH = CONCAT('00', t1.IDBOTH);

使用此SQLFIDDLE查看它的实际效果

于 2013-07-12T03:17:56.930 回答
0

怎么样(在MySQL中)

SELECT CONCAT('00', CAST(field AS CHAR)) AS newfield

但是,如何将第一个表从字符串转换为整数呢?

于 2013-07-12T02:51:02.477 回答
0

首先添加与整数数据列具有相同数据的字符串数据类型的另一列。

更新表 SET column2 = CAST(column1 AS CHAR)

然后,您可以在列前添加“00”前缀以使用以下查询。

更新表 SET column2 = CONCAT('00',column2)

希望这能解决你的问题

于 2013-07-12T03:09:05.127 回答