Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2010, 16h36   #1
Futur Membre du Club
 
Inscription : août 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : août 2007
Messages : 44
Points : 17
Points : 17
Par défaut SELECT LIKE chiffres/caractères spéciaux

Bonjour à tous !

J'ai besoin d'afficher des listes avec un tri : on peu afficher que les entrées qui commence par une certaine lettre.
Code :
SELECT *FROM structures WHERE nom LIKE 'a%'
Jusque là, pas de problème pour les lettres.

Par contre, pour afficher celles qui commence par un chiffre ou un caractère spécial, je sais pas quoi mettre comme condition. Je pense que le plus simple serait de prendre ceux qui commencent pas par une lettre (logique, jusque là), mais je vois pas comment interdire une plage

Faire "NOT LIKE 'a%' AND NOT LIKE 'b%'..." est possible, mais je pense qu'il y a plus optimisé et franchement, connaissant le talent des développeurs pour se simplifier la vie, je suppose qu'il y a un moyen.

Voilà, merci d'avance !

Silent
Seidris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2010, 18h31   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 277
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 277
Points : 2 323
Points : 2 323
Bonjour,

tu peux t'en sortir avec regexp :

Code sql :
1
2
 
SELECT * FROM structures WHERE nom REGEXP '^[0-9ar]'

-> nom commencant par un chiffre ou un 'a' ou un 'r'
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2010, 18h53   #3
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Code :
1
2
 
SELECT * FROM structures WHERE username REGEXP '^[^[:alnum:]]|^[0-9]';
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2010, 19h06   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 277
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 277
Points : 2 323
Points : 2 323
Citation:
Envoyé par becket Voir le message
Code :
1
2
 
SELECT * FROM structures WHERE username REGEXP '^[^[:alnum:]]|^[0-9]';
Comme ceci plutôt alors :

Code sql :
1
2
 
SELECT * FROM structures WHERE username REGEXP '^([:alnum:]|[0-9])';
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2010, 19h25   #5
Futur Membre du Club
 
Inscription : août 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : août 2007
Messages : 44
Points : 17
Points : 17
Je me suis mal expliqué, excusez moi. Je veux tout ceux qui commencent par un chiffre ou un caractère spécial... Vu que je me vois pas faire une liste des caractères spéciaux... Je voulais faire tout ceux qui ne commencent pas par une lettre.
Seidris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2010, 19h28   #6
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 277
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 277
Points : 2 323
Points : 2 323
Code sql :
1
2
 
SELECT * FROM structures WHERE nom REGEXP '^[^[:alnum:]]'


Je te conseille d'apprendre un peu les regexp, c'est très utile et pour de nombreux langages
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2010, 19h50   #7
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Citation:
Envoyé par Madfrix Voir le message
Comme ceci plutôt alors :

Code sql :
1
2
 
SELECT * FROM structures WHERE username REGEXP '^([:alnum:]|[0-9])';
Les deux requêtes ne font pas la même chose :

ta requête sélectionne ce qui commence par un chiffre ou une lettre
ma requête sélectionne ce qui ne commence pas par une lettre ou qui commence par un chiffre
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2010, 22h41   #8
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 277
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 277
Points : 2 323
Points : 2 323
Yep j'avais compris l'inverse de ce qu'il voulait
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2010, 20h59   #9
Futur Membre du Club
 
Inscription : août 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : août 2007
Messages : 44
Points : 17
Points : 17
ça marche, impeccable

Merci beaucoup !
Seidris est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h47.


 
 
 
 
Partenaires

Hébergement Web