LIKE

elog29 Messages postés 25 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 12 mai 2006 - 20 juin 2005 à 16:11
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 février 2006 - 22 juin 2005 à 09:11
Bonjour,
Je cherche a utiliser like sur 1 champ entre 2 tables, voici ma requete, elle ne me retourne pas d'erreur mais ne m'affiche pas de resultat

SELECT 48.prenom
FROM `48`
INNER JOIN agemoyen
WHERE (
`48`.prenom LIKE agemoyen.Prenom & ' ET %' OR `48`.prenom LIKE '% ET ' &agemoyen.Prenom)
AND age
BETWEEN '70'
AND '75'

je travail sous mysql, j'ai essayé plein de chose mais rien a faire.
merci de votre aide

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
20 juin 2005 à 23:04
Salut



Je pense qu'il manque la condition de reunion entre tes deux tables.

SELECT 48.prenom
FROM `48`
INNER JOIN agemoyen

ON '48' .... = 'agemoyen......

WHERE (
`48`.prenom LIKE agemoyen.Prenom & ' ET %' OR `48`.prenom LIKE '% ET ' &agemoyen.Prenom)
AND age
BETWEEN '70'
AND '75'



Elles sont bizarre tes tables???



Tes tables ne sont selon moi pas correctes.



Voila
0
elog29 Messages postés 25 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 12 mai 2006 1
21 juin 2005 à 09:48
Merci de m'avoir répondu mais ça ne fonctionne toujours pas, pourquoi dis tu que mes tables sont bizarres?
En fait j'ai une table contacts avec toutes les coordonnées des contacts (nom, prenom, adresse, cp, ville, tel) et une table agemoyen avec un prenom et l'age moyen du prenom. Je voudrais recuperer les contacts qui ont un prenom d'age moyen entre 70 et 75, si je fais WHERE
`48`.prenom LIKE agemoyen.Prenom ça fonctionne mais le problème c'est que parfois j'ai 2 prenoms pour le meme contact (ex: ANNA ET PIERRE) c'est pourquoi je dois faire WHERE (`48`.prenom LIKE agemoyen.Prenom & ' ET %' OR `48`.prenom LIKE '% ET ' &agemoyen.Prenom)
et la ça ne fonctionne pas sur mysql alors que sur access ça fonctionne, je ne comprend pas pourquoi.
0
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 février 2006
21 juin 2005 à 13:57
Ouais y'a un zgouillis au niveau de tes tables là...

En fait je vois pas pourquoi tu utilises un Like parce que un prénom
c'est un prénom... tu peux utiliser directement = ca sera moins de
soucis. Like ca sert quand tu a une partie seulement du mot que tu
recherches LIKE 'abe' te sors tous les mots commençant par abe par
exemple. Avec égal ça donne :

SELECT * FROM 48,agemoyen WHERE 48.prenom = agemoyen.Prenom AND
agemoyen.[Le nom de la ligne contenant l'age moyen] BETWEEN '70' AND
'75';



Euh le And associé à Between je suis pas sur qu'il soit bien géré.. a tester..

Tu peux pas donner la structure exacte de tes tables ?.


"Celui qui brise une chose pour découvrir ce que c'est a quitté le chemin de la sagesse"
0
elog29 Messages postés 25 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 12 mai 2006 1
21 juin 2005 à 15:59
J'ai 1 table de contacts (ici nomée 48) avec 5 champs: Nom, Prenom, Adresse, CP, Ville, Telephone
et 1 table agemoyen avec 2 champs: Prenom, Age
Dans ma table des contacts, dans le champ Prenom, j'ai parfois 2 prenoms (ex: ANNE ET PIERRE) et je cherche a afficher les contacts dont le prenom a un age moyen entre par exemple 70 et 75 ans. on imagine que l'age moyen du prenom ANNE est de 70 ans, si j'ecris 48.prenom = agemoyen.Prenom alors il ne me retournera pas l'enregistrement ANNE ET PIERRE puisque agemoyen.prenom=ANNE et que 48.prenom=ANNE ET PIERRE, c'est pourquoi je dois utiliser like dans le cas ou il y a 2 prenoms dans mon champ '[prenomrecherché] ET %' ou '% ET [prenomrecherché]'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 février 2006
22 juin 2005 à 09:11
Oulah oui je comprend le pourquoi du Like maintenant :) Mais si tu veux
faire cette opération tu as besoin des deux tables et donc forcément
d'une jointure et je suis pas sur que la jointure marche avec un Like
(les jointures doivent porter sur des elements identiques). Je crois
que tu n'as pas respecté une des regles fondamentales des bases de
données : l'atomicité des données. C'est à dire que chaque donnée est
reduite a son plus petit élément (exemple Anne Et Pierre donne une
ligne Anne et une ligne Pierre) A part si ton traitement te force à
réunir les deux prénoms...

"Celui qui brise une chose pour découvrir ce que c'est a quitté le chemin de la sagesse"
0
Rejoignez-nous