Page 1 sur 1

db.search et opérateur logique "Or"

MessagePublié: 28 Jan 2014 à 12:27
par gouff
Bonjour,

dans un db.search(query,nothing,0)
query= {form="toto"& @contains(lecteur;"")|@contains(lecteur;"*")}

Je n'arrive pas à faire interpréter le | (même en doublant : ||)

Une idée?

Re: db.search et opérateur logique "Or"

MessagePublié: 28 Jan 2014 à 12:30
par Michael DELIQUE
salut

essais ça query= {form="toto"& @contains(lecteur;"":"*")=@true}

d'une autre coté ton premier critere est vide ""...

Re: db.search et opérateur logique "Or"

MessagePublié: 28 Jan 2014 à 12:36
par gouff
Ok trouvé, en fait il faut remplacer le pipe par /
Merci !

Re: db.search et opérateur logique "Or"

MessagePublié: 28 Jan 2014 à 12:41
par Michael DELIQUE
o_O j'ai jamais vue ça avant !

Re: db.search et opérateur logique "Or"

MessagePublié: 28 Jan 2014 à 13:14
par gouff
Non, non je me plante, j'ai louché sur une autre ligne de ma doc en ligne...
Ta solution fonctionne, merci Michael!

Re: db.search et opérateur logique "Or"

MessagePublié: 28 Jan 2014 à 20:45
par roubech
le "*" dans ton critère, c'est pour trouve la chaine de texte *, pas pour trouver n'importe quelle chaine de texte

Re: db.search et opérateur logique "Or"

MessagePublié: 29 Jan 2014 à 09:25
par gouff
oui c'est pour trouver la chaîne "*".
Mon soucis c'est de pouvoir faire un OU logique dans une formule interprété par le db.search, car il n’interprète pas le pipe ou le double pipe comme un Or, mais comme une fin de chaîne...

Re: db.search et opérateur logique "Or"

MessagePublié: 29 Jan 2014 à 09:33
par Michael DELIQUE
re,

pour que le pipe soit interpréter comme un fin de chaine, faut qu'il soit aussi un début de chaine...

Re: db.search et opérateur logique "Or"

MessagePublié: 29 Jan 2014 à 10:59
par gouff
J'utilise pourtant les accolades pour délimiter les chaînes..

Re: db.search et opérateur logique "Or"

MessagePublié: 31 Jan 2014 à 14:20
par d.bugger
Cherche les différences..

query= {form="toto"& @contains(lecteur;"")|@contains(lecteur;"*")}

query= {form="toto"& (@contains(lecteur;"")|@contains(lecteur;"*"))}

J'explique : la priorité de l'opérateur & est plus haute que celle du |

Re: db.search et opérateur logique "Or"

MessagePublié: 31 Jan 2014 à 14:33
par Michael DELIQUE
bienvue, j'avais pas tilter !

la différence n'est pas mince et on peut avoir quelques belle supprises