Genera una nuova variabile stringa concatenando due variabili intere con MySQL
-
12-11-2019 - |
Domanda
Mi scuso per la stupidità della domanda, ma sono un neofita completo con MySQL e sto avendo problemi anche a leggere la documentazione per questo.Ho una tabella con due colonne "homeid" e "indid", che sono entrambi campi di dati interi.Voglio concatenarli insieme in una nuova variabile " uid " con un trattino.L'output desiderato sarebbe simile a questo:
uid homeid indid
10-1 10 1
10-2 10 2
11-1 11 1
Ho provato il seguente codice, che funziona bene generando la variabile " uid " in cui le variabili concatenate dovrebbero sedersi, ma non sembra funzionare (sebbene non produca alcun errore) oltre a questo:
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);
Grazie in anticipo per il vostro aiuto (e pazienza).
Soluzione
La funzione di cui hai bisogno qui è CONCAT_WS()
per utilizzare un separatore di delimitazione -
, o cambi intorno agli argomenti a CONCAT()
:
UPDATE table_name SET uid = CONCAT_WS('-' , homeid, indid);
O cambiare intorno agli argomenti per CONCAT()
UPDATE table_name SET uid = CONCAT(homeid, '-', indid);
Altri suggerimenti
Prova a seguire la query.
UPDATE table_name SET uid=CONCAT('-' , homeid, indid) where homeid > 0;
.