我想在一个表上运行一个查询,我将一列的值与另一列连接起来。
类似于以下内容(javascripty 尝试):
UPDATE table
SET items = items+","+item1
WHERE item1 != "No Data" || item1 != "";
这可以在数据库中执行还是我需要在中间件中执行?任何指针再次非常感谢。
我想在一个表上运行一个查询,我将一列的值与另一列连接起来。
类似于以下内容(javascripty 尝试):
UPDATE table
SET items = items+","+item1
WHERE item1 != "No Data" || item1 != "";
这可以在数据库中执行还是我需要在中间件中执行?任何指针再次非常感谢。
看看concat_ws:
# Untested, but should work
UPDATE table
SET items = CONCAT_WS(',', items, item1)
WHERE item1 != "No Data" || item1 != "";
解决此问题的另一种方法:
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