J'ai une table mysql avec des données. En cela, j'ai une colonne (numéro_mobile) et cette valeur de colonne est comme le numéro de téléphone portable (ex: 1234587920).
Ma sortie attendue est: 12-34-58-79-20
Je veux ajouter un trait d'union tous les deux nombres.
4 Réponses :
vous pouvez essayer ceci
select concat( right(phone_number,3) , "-" , mid(phone_number,4,3) , "-", right(phone_number,4)) from table
cela fonctionnera:
SELECT concat(SUBSTRING(mobile_number, 1, 2),"- ",SUBSTRING(mobile_number,3,2),"-",SUBSTRING(mobile_number, 5, 2),"-", SUBSTRING(mobile_number, 7, 2),"-", SUBSTRING(mobile_number, 9, 2)) ExtractString from tablename;
pour votre requête de table est comme:
SELECT concat(SUBSTRING("1234587920", 1, 2),"-",SUBSTRING("1234587920",3,2),"-
",SUBSTRING("1234587920", 5, 2),"-",
SUBSTRING("1234587920", 7, 2),"-",
SUBSTRING("1234587920", 9, 2)) AS ExtractString;
utilisez concat () pour joindre des chaînes et utilisez substr () pour scinder une chaîne dans mysql:
split (column, start, count) select column from start position for count charachter
concat ( colonne1, "-", colonne2) sera colonne1-colonne2
SELECT CONCAT(SUBSTR(phone,1,2),'-',SUBSTR(phone,3,2),'-',SUBSTR(phone,5,2),'- ',SUBSTR(phone,7,2),'-',SUBSTR(phone,9,2)) FROM `table`
ne soyez pas juge. Pas du tout
merci esnkrimi ..... Et je voudrais poser un autre doute .. si je ne sais pas combien de nombres j'ai (c'est-à-dire la longueur de la chaîne) à partir de maintenant j'ai 10 chiffres, donc je mets comme statique mais si c'est dynamique quelle serait la solution?
J'utiliserais certainement concat_ws () pour cela:
select concat_ws('-',
substr(mobile_number, 1, 2),
substr(mobile_number, 3, 2),
substr(mobile_number, 5, 2),
substr(mobile_number, 7, 2)
)
Voici un violon db .
Ce n'est pas une virgule
Il semble beaucoup plus intelligent de faire ce genre de chose dans la couche de présentation