MYSQL插入concat的结果

时间:2014-08-20 01:09:22

标签: mysql insert concat

我有一个包含4列的表格:

ID     ORDER_ID     QTY     VALUE     
1       153          1        0
2       476          1        0
3       453          9        1
4       719          2        2 

使用此表,我必须将“”连接到QTY和VALUE的值,然后将其存储回表中,因此它看起来像这样(qtyvalue都是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`;

很抱歉,如果这是一个新问题,但我确实尝试搜索无效。

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是,为什么需要将qtyvalue变成字符串?

首先,将您的数据类型更改为varchar。其次,INSERT语句意味着向表中添加新行,因此如果您需要这种结果,则需要使用UPDATE语句。

在您的代码中:

INSERT INTO `myTable` (`order_id`, `qty`, `value`) 
SELECT `order_id`, CONCAT('"',qty,'"') , CONCAT('"',value,'"')  
FROM `1.1`;

这是否意味着您的表名是1.1?我认为这不是命名表的正确方法。