begin process at 2008 08 29 08:56:31
1 233 528 membres
67 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : LIKE [ Archives / Problème avec une requête ] (elog29)

LIKE le 20/06/2005 16:11:27

elog29
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

Re : LIKE le 20/06/2005 23:04:12

nhervagault
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


Re : LIKE le 21/06/2005 09:48:32

elog29

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.


Re : LIKE le 21/06/2005 13:57:13

Isengard
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"

Re : LIKE le 21/06/2005 15:59:51

elog29
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é]'

Re : LIKE le 22/06/2005 09:11:40

Isengard
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"


Classé sous : and, like, prenom, agemoyen

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS