Re: une condition complexe
Citation:
Envoyé par sami_c
Je voudrais afficher les enregistrement dont la colonne JOUR correspond par exemple à la valeur 1101100,
en clair ta condition avec 01101100 c'est de trouver les enregistrement où il y a au moins les lundi mardi jeudi et vendredi ?
si c'est ça essaye cette condition (108 c'est 01101100 en décimal):
Code:
... WHERE (JOUR & 108 = 108)
edit : grilled ;)
Re: une condition complexe
Citation:
Envoyé par mathieu
en clair ta condition avec 01101100 c'est de trouver les enregistrement où il y a au moins les lundi mardi jeudi et vendredi ?
si c'est ça essaye cette condition (108 c'est 01101100 en décimal):
Code:
... WHERE (JOUR & 108 = 108)
Euh... oui, pardon. C'est toi qui a raison mathieu. C'est bien le ET bit-à-bit qu'il faut utiliser.
2 minutes plus tôt, je résolvais un problème faisant intervenir le XOR bit-à-bit, donc je me suis emmellé les pinceaux. Désolé :oops:
Pour compléter ce que dit mathieu,
Code:
... WHERE (JOUR & 108 = 108)
correspond aux enregistrements pour lesquels on a à la fois lundi mardi jeudi et vendredi.
Si tu veux les enregistrements pour lesquels on a au moins des jours considérés (lundi mardi jeudi et vendredi), alors
Code:
... WHERE (JOUR & 108)
suffit.
***
Sinon, niveau conception de la base de données, il y a encore plus simple avec une colonne de type SET:
http://dev.mysql.com/doc/refman/5.0/en/set.html
Dans ce cas, on utilise directement les noms des jours (ou pas) :
Code:
1 2 3
| SELECT * FROM tbl_name WHERE FIND_IN_SET('lundi', jour) OR FIND_IN_SET('mardi', jour) ;
SELECT * FROM tbl_name WHERE jour = 'lundi,mardi';
SELECT * FROM tbl_name WHERE jour & 108 ; |