Sql durdur

Fermé
topla - 2 nov. 2001 à 10:57
 topla - 2 nov. 2001 à 16:20
Voila, j'ai dans ma table un champ dont la valeur est de 0 a 255 (soit 1 octet)
Ce champ represente plusieurs informations pour moi, puisqu'en fait chaque bit positionné a 0 ou 1 est la reponse oui/non a une question.
Le probleme est au moment de la recherche sur ce champs,
je fait un "select (...) where (BIN(moncham)&BIN(16))"
ca ne marche pas!! pourtant les valeurs dans la table son correct,
si je me tropme pas:
01010101 &
10101010 devrait faire 0
en fait mon truc marche qu'avec 1 ou 2 a la place de 16... mais pas dans les autrs cas !!?

Si quelqun a une idée
A voir également:

4 réponses

slopera Messages postés 69 Date d'inscription vendredi 2 novembre 2001 Statut Membre Dernière intervention 19 février 2009
2 nov. 2001 à 11:54
La comme sans connaître, pour moi, 16, c'est 00010000. Donc si tu fait un & entre
01010101 et
00010000 cela donne
00010000 !
et pas 0.
Cela vient peut-être tout simplement de la.

Bon courage
Stéphanie
0
non, 16 c'etait pour l'exemple.. des fois je cherche 2 des fois 255 ...
0
slopera Messages postés 69 Date d'inscription vendredi 2 novembre 2001 Statut Membre Dernière intervention 19 février 2009
2 nov. 2001 à 13:39
Quelle est ta requête toute entière ?
0
select * from matable .... mais le bug vient du Bin()&Bin()
Apparement, ce serait de la faute a mysql, car mon truc marche sur le papier, et les données sont correctes...
0
slopera Messages postés 69 Date d'inscription vendredi 2 novembre 2001 Statut Membre Dernière intervention 19 février 2009
2 nov. 2001 à 13:58
Le ET logique sous mysql est &&. Essaie avec cela.
Sinon, il y a une doc nexen très complête à l'adresse :
http://dev.nexen.net/docs/mysql/annotee/manuel_toc.php
J'espère t'avoir aidé.

Stéphanie
0
oui mais c'est un ET bit a bit, donc & .. cela dit jai quand meme essaye un peu tout dont le &&...
0
slopera Messages postés 69 Date d'inscription vendredi 2 novembre 2001 Statut Membre Dernière intervention 19 février 2009 > topla
2 nov. 2001 à 14:48
Mais le problême, c'est quoi ?
Une erreur à l'éxecution ou alors une erreur car le résultat n'est pas celui que tu escomptais.
Dans ce dernier cas, pourrais tu donner un exemple de ce qui est en base et du résultat de la requête.
0
slopera Messages postés 69 Date d'inscription vendredi 2 novembre 2001 Statut Membre Dernière intervention 19 février 2009 > topla
2 nov. 2001 à 14:55
Je viens de voir que le ET bit à bit se faisait selon l'exemple :

mysql> select 29 & 15;
-> 13
(source Nexen)
29 = 11101
15 = 01111
13 = 01101
donc ça roule comme cela.
Si cela se trouve la solution, c'est simplement que tu n'as pas besoin de mettre le BIN(). Si c'est cela, dis le moi.

Stéphanie
0
topla > topla
2 nov. 2001 à 16:20
nan, javais esayer, mais c'etait pas mieux, desolé, mais wekend, et pas le temps de tut vous expliquer.. de toute facon j'ai laisse tomber et changer de strategie, mais merci !!
ps: pas d'erreur, mais resultat pas comme prevu.. j'etais dans le juste pour le &... mais cela ne marche pas avec sql.. (bug?)
0