Est-il possible de moduler l'ordre du tri des enregistrements selon le contenu d'un champ?

Mon exemple est simple à comprendre : J'ai une table qui contient une liste de membres avec trois champs :

1) Le statut du membre, un entier (1=actif, 2=à l'essai, etc.)
2) Le prenom du membre
3) Son adresse

Je veux lister les membres en triant d'abord sur leur statut (i.e tous les membres actifs en premier, ensuite ceux à l'essai) puis sur leur prénom. Donc on ajoute ORDER BY statut, prenom.

Là où cela me semble impossible est que, si une fois qu'un membre a été listé selon cet ordre, il existe un ou plusieurs autres membres habitant à la même adresse, je veux qu'ils soient listés tout de suite après, indépendamment de leur statut ou de leur prénom.

Avez-vous une idée de comment faire?

Un extrait de mes données :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
CREATE TABLE `membres_test` (
  `statut` smallint(5) unsigned default NULL,
  `prenom` varchar(30) default NULL,
  `adresse_1` varchar(50) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
INSERT INTO `membres_test` (`statut`,`prenom`,`adresse_1`) VALUES 
 (1,'Gérald','560, boulevard Lasalle'),
 (1,'Henriette','395, rue Wellington'),
 (1,'Gisèle','163, rue Saint-Christophe'),
 (5,'Christiane','163, rue Saint-Christophe'),
 (1,'Marie-Denise','829, 8e Avenue'),
 (1,'Chantal','236, avenue Parkville'),
 (6,'Jean-Claude','85, rue Ponsard'),
 (5,'Sophie','85, rue Ponsard'),
 (1,'Yvonne','20, rue Léon-Grondin'),
 (1,'Rénald','44, rue Des Gaillardes'),
 (5,'Jacqueline','44, rue Des Gaillardes'),
 (1,'Suzanne','10, rue Marconi'),
 (1,'José-Anibal','28, avenue Colombier'),
 (5,'Jesus','28, avenue Colombier'),
 (1,'Halima','80, rue Mercier'),
 (5,'Ali','80, rue Mercier'),
 (1,'Kathleen','377, rue Orphée'),
 (1,'André','20, rue des Rapides'),
 (5,'Nicole','20, rue des Rapides'),
 (1,'Francine','258, rue Chapleau'),
 (1,'Réal','258, rue Chapleau'),
 (1,'Michel','201, rue Louis Veuillot #3'),
 (1,'Lucille','274, avenue Létourneux'),
 (1,'Marie-Christine','220, rue Moreau'),
 (5,'Daniel','220, rue Moreau'),
 (2,'Louise','21, rue Saint-Jacques'),
 (1,'Robert','600, rue Chevalier app. 25'),
 (1,'Monique','280, rue Saint-Charles, app. 340'),
 (1,'France','435, rue Boyer'),
 (2,'Pierre','435, rue Boyer'),
 (2,'Simon-Pierre','435, rue Boyer'),
 (1,'Yvanne','280, rue Saint-Charles, app. 224'),
 (1,'Gratien','280, rue Saint-Charles, app. 224'),
 (6,'Réjean','74, Woodland'),
 (6,'Marguerite','258, place Dublin, app. 3'),
 (6,'Suzy','16, rue Saint-Félix');