Générer une nouvelle variable de chaîne en concaténant deux variables entières avec MySQL
-
12-11-2019 - |
Question
Je m'excuse pour la bêtise de la question, mais je suis un néophyte complet avec MySQL et j'ai du mal à lire la documentation pour cela. J'ai une table avec deux colonnes "homeID" et "Indide", qui sont toutes deux des champs de données entiers. Je veux les concaténer ensemble dans une nouvelle variable "UID" avec un trait d'union. La sortie souhaitée ressemblerait à ceci:
uid homeid indid
10-1 10 1
10-2 10 2
11-1 11 1
J'ai essayé le code suivant, ce qui fait très bien en générant la variable "UID" dans laquelle les variables concaténées doivent s'asseoir, mais ne semble pas fonctionner (bien qu'il ne produit aucune erreur) au-delà de cela:
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);
Merci d'avance pour votre aide (et votre patience).
La solution
La fonction dont vous avez besoin ici est CONCAT_WS()
Pour utiliser un séparateur de délimitation -
, ou changer autour des arguments pour CONCAT()
:
UPDATE table_name SET uid = CONCAT_WS('-' , homeid, indid);
Ou changer autour des arguments pour CONCAT()
UPDATE table_name SET uid = CONCAT(homeid, '-', indid);
Autres conseils
Veuillez essayer de suivre la requête.
UPDATE table_name SET uid=CONCAT('-' , homeid, indid) where homeid > 0;