sql LIKE multi valeurs

passion
WRInaute accro
WRInaute accro
 
Messages: 3125
Inscription: 6 Jan 2006

sql LIKE multi valeurs

Message le Mer Jan 20, 2010 19:10

Bonjour,

J'ai un petit prob de requête sql !

Je voudrais extraire tous les membres ayant une date de naissance comprise en 1970...1975 (par ex)
inutile de proposer le BETWEEN car mon champ "naissance" est une chaine de car. du style "01/12/2009" donc j'avais dans l'idée de faire dans le genre:
Code: Tout sélectionner
SELECT * FROM `matable` WHERE `naissance` LIKE ( '%1970|1971|1972|1973|1974|1975'  )


plutôt que de faire une requête à rallonge genre:
Code: Tout sélectionner
SELECT * FROM `matable` WHERE `naissance` LIKE ( '%1970' ) OR `naissance` LIKE ( '%1971' ) OR `naissance` LIKE ( '%1972' ) OR `naissance` LIKE ( '%1973' ) OR `naissance` LIKE ( '%1974' ) OR `naissance` LIKE ( '%1975' )


Pouvez-vous m'aider?
Merci


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8581
Inscription: 23 Nov 2005

Re: sql LIKE multi valeurs

Message le Mer Jan 20, 2010 19:25

Si toutes tes dates sont construites de la même mannière, je te conseille davantage d'utiliser RIGHT() en mySQL pour récupérer les 4 derniers caractères et de faire une comparaison stricte pour la suite (pas besoin de like %%).

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Re: sql LIKE multi valeurs

Message le Mer Jan 20, 2010 22:46

Pour moi le problème vient de la conception de ta table :mrgreen:
Je ne vois absolument aucun interet de stocker une date sous forme de chaine de caractères. Il n'y en a aucun et ça ne se fait pas, tout simplement.

Donc change ta table, au lieu de te casser la tête sur un problème qui n'en est pas un. Surtout que les dates aujourd'hui, les SGBD savent très bien faire et intégrent leur propre gestion des dates. C'est pas comme si on voulait par exemple stocker une donnée comme une adresse IP, où là la plupart des SGBD ne savent pas gérer eux-même.

passion
WRInaute accro
WRInaute accro
 
Messages: 3125
Inscription: 6 Jan 2006

Re: sql LIKE multi valeurs

Message le Mer Jan 20, 2010 22:51

Merci pour votre aide et je suis bien d'accord avec toi mais le site a été construite ainsi donc je fais avec !

Je ne vais pas m'amuser à modifier la nature d'un champ qui va casser toute une prog dessus ;)

Mais c'est bon, j'ai trouvé une solution qui marche.
Pas forcement la meilleur mais elle marche :)

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Re: sql LIKE multi valeurs

Message le Mer Jan 20, 2010 23:36

De la même manière, si la programmation avait été bien faite, il n'y aurait pas plus de 2-3 lignes à modifier :mrgreen:


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité