2012-11-07 45 views
2

我使用表单中的参数将其插入到我的数据库中。将多个参数值插入到单个列中

表单有4个输入字段(current_no,current_street,current_city,current_state)。我已经设置好了,以便客户端可以在网页上显示每个值,但他们想要的是能够在单个列中查看这些值。

来自所以基本上...

current_no | current_street | current_city | current_state

到...

| current_no current_street current_city current_state |

,我决定我的另一列添加到会存储这个“满”值的表,我想通填充它很可能是容易的,但我觉得我失去了一些东西:

insert into customers(current_address) values (current_no + ' ' + current_street + ' ' + current_city + ' ' + current_state) 

虽然这并没有给我任何错误,它只是插入了current_no值插入列。

我如何可以连接所有的值(字符串类型)插入数据库侧列?

在此先感谢您的帮助!

mySQL使用

回答

3

CONCAT()

insert into customers(current_address) values 
(
    (CONCAT(current_no,' ',current_street,' ',current_city,' ',current_state) 
) 

CONCAT_WS()

insert into customers(current_address) values 
(
    (CONCAT_WS(' ', current_no,current_street,current_city,current_state) 
) 
+1

谢谢先生。这是完美的:) +1并接受 – Ortund

+0

@Ortund不客气:D –

+1

+1对你来说是因为你展示了OP两种不同的方法:这是非常专业的! :) – Marco

3

尝试使用

INSERT INTO customers (current_address) 
SELECT 
    CONCAT_WS(' ', current_no, current_street, current_city, current_state) 
+0

谢谢你+1,但是自从他第一次回答Woo先生以来 – Ortund

+1

@Ortund:我使用了不同的功能,但是他是第一个,所以答案是绝对的! :) – Marco

+1

'+ 1'为介绍'INSERT INTO..SELECT':D –

0

也有人建议CONCAT_WS,这就是正确的。正如您发现的那样,SQL语言不会连接字符串。

但是,请考虑一下为此添加新列的计划。带有冗余数据的新列通常不是一个好主意。

如果您已经拥有包含其中数据的列,建议您在读取表时使用SELECT查询来创建连接列。这将利用您已有的数据,而不会在表格中放置冗余数据。

SELECT CONCAT_WS(' ', current_no,current_street,current_city,current_state) 
     AS current_address 
+0

非常好的观察。是的,我知道如果我只引用现有列,通常情况会更好,但页面上有一个功能基于选择的列来构建gridview。因此,用户只需点击一下即可自定义他/她所看到的数据 – Ortund

+0

您是否可以从“视图”中检索数据,考虑到此GridView功能是由列驱动的?您的应用程序代码将无法区分表和视图(除非它使用'information_schema.columns'来获取元数据)。 –