2010-03-19 3 views

Répondre

28

Utilisez 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

Il est utilisé pour les entiers ainsi que pour les varchars? parce que j'avais l'impression que CONCAT est utilisé uniquement pour les types de chaînes. – Rachel

+1

Oui, il convertit les entiers. Vous pouvez trouver les détails si vous suivez le lien @nickf fourni. – titanoboa

+9

Mysql ne convertit pas les entiers comme des chaînes comme on pourrait s'y attendre. Il arrache la représentation binaire du nombre, ce qui n'est pas la même chose. Si les arguments incluent des chaînes binaires, le résultat est une chaîne binaire Un argument numérique est converti en sa forme de chaîne binaire équivalente Si vous voulez éviter cela, vous pouvez utiliser un transtypage de type explicite, comme dans cet exemple: SELECT CONCAT (CAST (int_col AS CHAR), char_col); – MrM

31

si les arguments comprennent toutes les chaînes binaires, le résultat est une chaîne binaire. Un argument numérique est converti en sa forme de chaîne binaire équivalente; si vous voulez éviter cela, vous pouvez utiliser une distribution de type explicite, comme dans cet exemple:

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

5.1 Documentations

+0

mise à jour set utilisateur emailId = select CONCAT (2000000000, userId, '@ xyz.local'). Quel est le problème avec cela? –

-1

Pour deux colonnes concaténation nom: CHAR et pas: int

La syntaxe PIG est CONCAT (nom, (CHARARRAY) non);