将多个参数值插入单个列

时间:2012-11-07 13:03:14

标签: mysql

我在这里使用表格中的参数插入我的数据库。

表单有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值。

如何将所有值(字符串类型)连接到数据库端的列?

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

mySQL中的

使用 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 :(得分:3)

尝试使用

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

答案 2 :(得分:0)

其他人建议CONCAT_WS,这是正确的。正如您所发现的那样,+运算符SQL语言不会连接字符串。

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

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

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