2010-03-19 157 views

回答

28

使用CONCAT

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_concat

SELECT CONCAT(1, 2); 
-- "12" 

SELECT CONCAT('foo', 'bar'); 
-- "foobar" 

SELECT CONCAT(1, 'bar'); 
-- "1bar" 
+1

它用于整数以及varchars?因为我的印象是CONCAT只用于字符串类型。 – Rachel 2010-03-19 16:49:59

+1

是的,它转换整数。如果您按照提供的链接@nickf,可以找到详细信息。 – titanoboa 2010-03-19 16:56:46

+9

Mysql不会像您期望的那样将整数转换为字符串。它拉开了数字的二进制表示,这是不一样的。 “如果参数包含任何二进制字符串,则结果为二进制字符串,数字参数将转换为其等效的二进制字符串形式;如果您想避免这种情况,可以使用明确的类型转换,如下例所示: SELECT CONCAT(CAST(int_col AS CHAR),char_col); – MrM 2011-08-26 11:17:10

31

如果参数包含任何二进制字符串,结果是一个二进制字符串。一个数字参数被转换为它的等价二进制字符串形式;如果你想避免这种情况,你可以使用显式类型转换,如下面的例子:

SELECT CONCAT(CAST(int_col AS CHAR), char_col); 

5.1 Documentations

+0

update user set emailId = select CONCAT(2000000000,userId,'@ xyz.local')。这是什么问题? – 2013-04-26 18:55:15

-1

对于两列串联 名称:CHAR 和 没有:整数

PIG语法是CONCAT(name,(CHARARRAY)no);