[RESOLU] regrouper deux colonnes en une

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] regrouper deux colonnes en une

Re: [RESOLU] regrouper deux colonnes en une

par yann18 » 18 juil. 2019, 17:52

Pour ne pas avoir à faire le trans-typage de varchar vers int, l’idéal serait de choisir un type mysql compatible par rapport à la donnée que tu veux stocker. Cela te facilite grandement pour effectuer des calculs, des tris et surtout apporte un gain de performance. Dans ton cas des types comme SMALLINT, DATE seraient plus appropriés.


la lecture de tes 2 derniers messages laissent penser que les 2 colonnes(semaine_A, semaine_B) n'ont pas leur place dans la table où elles se trouvent mais devraient plutôt être dans une nouvelle table qui comporterait qu'une seule colonne des semaines.

Code : Tout sélectionner

semaine(id, numero ) //stocke toutes les semaines activite(id, titre, semaine_id) // où semaine_id représente le numéro de la semaine
A l'aide d'une requête sql avec jointure entre les 2 tables, on peux facilement récupérer toutes les semaines.

Re: regrouper deux colonnes en une

par neomega » 18 juil. 2019, 08:08

bonjour,

mes champs était bien en VARCHAR la solution + 0 marche parfaitement

la version ou je fait mes test est 3.5.2.2

merci beaucoup pour ton aide et tes explication très précise

Re: regrouper deux colonnes en une

par yann18 » 17 juil. 2019, 16:50

est-ce-que semaine_A et semaine_B ne seraient pas par hasard des varchar ? si c'est la cas tu peux caster en int soit utilisant l’opérateur CAST soit en additionnant semaine par 0( order by semaine+0 ).

au passage les parenthèses ne sont pas obligatoires.
sur quelle version de mysql exécute-tu ta requête?

Un exemple similaire sur
https://www.w3schools.com/sql/sql_union.asp

Re: regrouper deux colonnes en une

par or 1 » 17 juil. 2019, 16:12

Re: regrouper deux colonnes en une

par neomega » 17 juil. 2019, 15:57

meme avec ceci :

1
10
11
12
13
14
15
16
17
18
19
2
20
21
22
23
24
25
26
27
28
29
3
30
31
32
36
37
38
39
4
5
6
7
8
9

voici mon code réel :
(SELECT  `semaine_A` AS semaine FROM calendrier WHERE  `semaine_A` !=0 )
UNION
 (SELECT  `semaine_B` AS semaine FROM calendrier WHERE  `semaine_B` !=0 )
ORDER BY semaine ASC

Re: regrouper deux colonnes en une

par yann18 » 17 juil. 2019, 14:15

tu peux trier avec order by

Code : Tout sélectionner

(SELECT repere1 AS repere FROM la_table) UNION (SELECT repere2 AS repere FROM la_table) ORDER BY repere

Re: regrouper deux colonnes en une

par neomega » 17 juil. 2019, 13:38

AVEC CETTE SOLUTION J'AI CE RÉSULTAT
1
2
3
7
5
6
4
11
8
9
10
06
15
12
13
14
19
17
16
18
20
21
22
25
24
021
23
28
MAIS PAS DANS L'ORDRE

Re: regrouper deux colonnes en une

par yann18 » 17 juil. 2019, 12:08

bonjour,
Une union est tout a fait possible pour regrouper les colonnes.

Code : Tout sélectionner

SELECT repere1 FROM la_table UNION SELECT repere2 FROM la_table

regrouper deux colonnes en une

par neomega » 17 juil. 2019, 10:54

bonjour,
je cherche a regrouper 2 colonnes en 1

ex:

repere1 | repere2
--------------------------
1 | 1
2 | 3
3 | 4
5 | 5

etc...

et je souhaiterais récupérer :

1
2
3
4
5
etc..

merci d'avance pour votre aide