2010-03-19 11 views

risposta

28

Usa 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

Viene utilizzato per interi e per varchar? perché avevo l'impressione che CONCAT fosse usato solo per i tipi di corda. – Rachel

+1

Sì, converte i numeri interi. Puoi trovare i dettagli se segui il link @nickf fornito. – titanoboa

+9

Mysql non converte i numeri interi come stringhe come ci si aspetterebbe. Esegue la rappresentazione binaria del numero, che non è lo stesso. "se gli argomenti includono stringhe binarie, il risultato è una stringa binaria.Un argomento numerico viene convertito nella sua forma di stringa binaria equivalente, se si desidera evitare ciò, è possibile utilizzare un cast di tipo esplicito, come in questo esempio: SELEZIONA CONCAT (CAST (int_col AS CHAR), char_col); – MrM

31

se gli argomenti comprendono tutte le stringhe binarie, il risultato è una stringa binaria. Un argomento numerico viene convertito nella sua forma di stringa binaria equivalente; se si vuole evitare che, è possibile utilizzare un tipo di cast esplicito, come in questo esempio:

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

5.1 Documentations

+0

set utente di aggiornamento emailId = selezionare CONCAT (2000000000, userId, '@ xyz.local'). Cosa c'è di sbagliato in questo? –

-1

Per due colonne concatenazione nome: CHAR e no: int

La sintassi PIG è CONCAT (nome, (CHARARRAY) no);