在MySQL中,你可以使用CONCAT
函数或+
运算符来将两列字符相加并赋值给第三列。CONCAT
函数用于连接两个或多个字符串,而+
运算符用于字符串连接(在某些情况下,它也可能执行数值加法,具体取决于操作数的类型)。
CONCAT
函数或+
运算符灵活地连接任意数量的字符串。CONCAT
函数:CONCAT(column1, column2)
+
运算符:column1 + column2
(注意:这种方式在某些情况下可能执行数值加法,因此需要确保两列都是字符串类型)假设你有一个包含用户信息的表users
,其中有两列分别是first_name
和last_name
,你想将这两列的值相加并赋值给一个新列full_name
。
CONCAT
函数ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
UPDATE users SET full_name = CONCAT(first_name, ' ', last_name);
+
运算符ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
UPDATE users SET full_name = first_name + ' ' + last_name;
+
运算符时,结果不是预期的字符串连接?原因:当使用+
运算符时,MySQL可能会尝试执行数值加法,而不是字符串连接。如果first_name
或last_name
列中包含数字,MySQL会将它们转换为数字并执行加法运算。
解决方法:确保两列都是字符串类型,或者在连接之前使用CAST
函数将它们转换为字符串。
UPDATE users SET full_name = CAST(first_name AS CHAR) + ' ' + CAST(last_name AS CHAR);
CONCAT
函数连接的结果包含空格或其他不可见字符?原因:可能是由于数据中本身就包含空格或其他不可见字符。
解决方法:在连接之前使用TRIM
函数去除字符串两端的空格和其他不可见字符。
UPDATE users SET full_name = CONCAT(TRIM(first_name), ' ', TRIM(last_name));
领取专属 10元无门槛券
手把手带您无忧上云