1

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

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

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

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

4

2 回答 2

2

看看concat_ws

# Untested, but should work
UPDATE table
SET items = CONCAT_WS(',', items, item1)
WHERE item1 != "No Data" || item1 != "";
于 2012-04-10T00:01:16.500 回答
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

于 2012-04-10T01:28:42.373 回答