我有一个包含4列的表格:
ID ORDER_ID QTY VALUE
1 153 1 0
2 476 1 0
3 453 9 1
4 719 2 2
使用此表,我必须将“”连接到QTY和VALUE的值,然后将其存储回表中,因此它看起来像这样(qty
和value
都是TEXT):
ID ORDER_ID QTY VALUE
1 153 "1" "0"
2 476 "1" "0"
3 453 "9" "1"
4 719 "2" "2"
要连接值,我使用以下内容:
SELECT CONCAT('"',qty,'"') qty,
CONCAT('"',`VALUE`,'"') VALUE
FROM `myTable`;
现在,当我尝试使用时:
INSERT INTO `myTable` (`order_id`, `qty`, `value`)
SELECT `order_id`, CONCAT('"',qty,'"') , CONCAT('"',value,'"')
FROM `1.1`;
这基本上让我整个桌子都空白。
但是,如果我使用单个concat,我可以存储所需的输出,但其余的字段都是空白的。
INSERT INTO `myTable` (`qty`)
SELECT CONCAT('"',qty,'"')
FROM `1.1`;
很抱歉,如果这是一个新问题,但我确实尝试搜索无效。
谢谢。
答案 0 :(得分:0)
问题是,为什么需要将qty
或value
变成字符串?
首先,将您的数据类型更改为varchar。其次,INSERT
语句意味着向表中添加新行,因此如果您需要这种结果,则需要使用UPDATE
语句。
在您的代码中:
INSERT INTO `myTable` (`order_id`, `qty`, `value`)
SELECT `order_id`, CONCAT('"',qty,'"') , CONCAT('"',value,'"')
FROM `1.1`;
这是否意味着您的表名是1.1?我认为这不是命名表的正确方法。