Générer une nouvelle variable de chaîne en concaténant deux variables entières avec MySQL

StackOverflow https://stackoverflow.com/questions/8981581

  •  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).

Était-ce utile?

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top