我为这个问题的愚蠢道歉,但我是MySQL的新手,甚至在阅读文档时也遇到了麻烦。我有一个带有两列"homeid"和"indid"的表,它们都是整数数据字段。我想在一个新变量"uid"中用连字符连接这些。期望的输出如下所示:

uid   homeid   indid
10-1  10       1
10-2  10       2
11-1  11       1

我已经尝试了下面的代码,它通过生成串联变量应该坐在其中的变量"uid"来做得很好,但似乎没有工作(尽管不会产生错误):

ALTER TABLE table_name
add column uid varchar(10) FIRST; /*adds column uid to table "table_name" as first column*/

UPDATE table_name
SET uid=CONCAT('-' , homeid, indid);

提前感谢您的帮助(和耐心)。

有帮助吗?

解决方案

这里你需要的功能是 CONCAT_WS() 使用分隔分隔符 -, ,或围绕参数更改为 CONCAT():

UPDATE table_name SET uid = CONCAT_WS('-' , homeid, indid);

或围绕参数更改为 CONCAT()

UPDATE table_name SET uid = CONCAT(homeid, '-', indid);

其他提示

请在查询后尝试。

UPDATE table_name SET uid=CONCAT('-' , homeid, indid) where homeid > 0;
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top