连接两个列值

时间:2012-04-09 23:57:57

标签: mysql

我想在一个表上运行一个查询,我将一列与另一列的值连接起来。

类似以下内容(javascripty尝试):

UPDATE table
SET items = items+","+item1
WHERE item1 != "No Data" || item1 != "";

这可以在数据库中执行,还是需要在中间件中执行? 任何指针再次非常赞赏。

2 个答案:

答案 0 :(得分:2)

看看concat_ws

# Untested, but should work
UPDATE table
SET items = CONCAT_WS(',', items, item1)
WHERE item1 != "No Data" || item1 != "";

答案 1 :(得分:1)

解决此问题的另一种方法:

UPDATE table
SET items = CONCAT(items,',',item1)
WHERE item1 != "No Data" OR item1 != "";

CONCAT()和CONCAT_WS()函数之间的主要区别之一(如上面Mike所述)是它们对NULL值的处理。有关更多信息,请参阅MySQL参考手册的字符串函数部分:http://dev.mysql.com/doc/refman/5.6/en/string-functions.html

使用“||”可能还有一些问题如果MySQL服务器启用了PIPES_AS_CONCAT模式,则为(管道)字符。以防万一,最好将其更改为“OR”: http://dev.mysql.com/doc/refman/4.1/en/server-sql-mode.html#sqlmode_pipes_as_concat