使用整数而不是字符串来错误构造第二个表。原始表使用了一个字符串。 (字段的字符串是压缩到一个字段中的三个其他数字ID的混合)
事实证明,使用int-to-string链接到另一个表存在问题。我想将第二个表中的字段从整数更改为字符串,并在现有整数前面添加前缀“00”(零 - 零) - 现在是一个字符串。这是两者之间的唯一区别。
我猜可能会将两者匹配为“LIKE”,但想要完全匹配,这应该是一次性修复。
谢谢!
乔利
答案 0 :(得分:0)
(在MySQL中)
SELECT CONCAT('00', CAST(field AS CHAR)) AS newfield
但是,如何将第一个表从字符串转换为int?
答案 1 :(得分:0)
首先添加另一列字符串数据类型,其数据与整数数据列相同。
UPDATE表SET column2 = CAST(column1 AS CHAR)
然后,您可以使用以下查询将“00”前缀添加到列中。
UPDATE表SET column2 = CONCAT('00',column2)
HOpe这解决了你的问题
答案 2 :(得分: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
查看此操作