|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 287 ![]() |
Est-il possible de faire ceci dans une requete ?
Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 125 ![]() |
Non.
TU peux utiliser un AND pour additionner des conditions. Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 287 ![]() |
J'avoue n'avoir pas bien compris.
En fait mon besoin. Pour mes enregistrement j'ai besoin de définir des statuts (lecture seule, non supprimable...) Soit je crée un champs par statut, soit j'utilise un seule champs avec (1: lecture seule, 2: non supprimable, 4:...) Et donc pour ajouter un statut soit j'utilise un AND soit une addition. Et pour vérifier les statuts utiliser un XOR Si quelqu'un a utiliser une méthode similaire je suis preneur, merci |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
Bonjour,
Le "AND" est un opérateur logique il travaille avec des "vrai" ou des "faux". Pour les opérateurs binaires, je ne crois pas que ce soit standard SQL. Voici comment faire avec MySQL: http://dev.mysql.com/doc/refman/5.0/...functions.html
__________________
www.nudge.org Surveillez et optimisez vos applications Java |
|
|
00
|
|
|
#5 | |
![]() ![]() |
Moi je n'ai pas compris ce que tu veux faire !
Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 287 ![]() |
je voulais utiliser un champs mon_champ_statut de type integer par defaut à 0
pour identifier un enregistrement en lecture seule: mon_champ_status = 1 pour identifier un enregistrement en lecture seule + non supprimable: mon_champ_status = 3 (1 + 2) pour identifier un enregistrement non supprimable: mon_champ_status = 2 Ce qui me permettait à partir d'un seul champs d'avoir plusieurs utilisations Je peux ainsi ajouter de nouveaux statuts: statut1 (4), statut2 (8).... sans avoir à ajouter de champs dans ma table à partir d'un statut, pour ajouter une option, je ferai ancienne option AND statuts (exemple de lecture seule à lecture seule + non supprimable, je fait mon_champ_statut = mon_champ_statut AND 2 donc requete Code :
UPDATE ma_table SET mon_champ_statut = mon_champ_statut AND 2 Code :
SELECT * FROM ma_table WHERE (mon_champ_statut XOR 1 = 1) |
|
|
00
|
|
|
#7 | ||||
![]() ![]() |
Citation:
Citation:
Code :
MCD : Ton_machin -1,n----Avoir----0,n- Statut Tables : Ta_table (tt_id,...) Statut (stt_id, stt_libelle) Avoir (avr_id_ta_table, avr_id_statut) Là on fait de la BDD relationnelle ! Pas de la cuisine à coup d'ajouts d'une pincée de statut X ou Y !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 287 ![]() |
Ce n'est surtout pas une addition, mais bien un AND
Il y a effectivement ta solution, ou l'ajout d'un champs par statut. Je cherchais une solution qui m'évitais de modifier la structure de la base à chaque ajout de nouveaux statuts, et qui également au niveau de l'application de ne gérer qu'une seule donnée |
|
|
00
|
|
|
#9 | |||||||||||
![]() ![]() |
Admettons...
Citation:
Code :
=> Résultat (chez MySQL avec un SELECT 1 AND 2) : 1 Au passage, SELECT 2 AND 5 donne aussi 1 ! Tu es toujours sûr que c'est un AND qu'il te faut ? Ce n'est pas moi qui l'écris mais toi : Citation:
Citation:
Citation:
Citation:
Un nouveau statut possible apparaît ? Tu l'ajoutes dans la table Statut. Un élément existant doit voir ce nouveau statut (ou un autre) ajouté à celui ou ceux qu'il a déjà ? Tu ajoutes une ligne dans la table associative. Rien a changer dans la structure de la BDD. Citation:
Citation:
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||||||||||
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 287 ![]() |
t'as raison, ce n'est pas un AND mais un OR, que je devrais utiliser
|
|
|
00
|
|
|
#11 | |
![]() ![]() |
Citation:
Chez MySQL : => résultat : 1 => résultat : 1 => résultat : 1 Ce genre d'opération donnera toujours 1 ! C'est une opération booléenne ! Encore une fois, tu es dans le monde des BDD relationnelles alors mets en oeuvre la bonne modélisation avec 3 tables que j'ai donnée plus haut !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : juillet 2005 Messages : 287 ![]() |
Non c'est bien un OR
champ_statut = 0 (au départ) ajout option lecture seule champ_statut = champ_statut OR 1 (1) ajout option non supprimable (sans retirer statut lecture seule) champ_statut = champ_statut OR 2 (3) Effectivement ce n'est normalisé. Mais c'était une idée pour stocker certaines données, et ce n'est pas réalisable en SQL (merci à lui de me ramener dans le droit chemin) Merci de tes conseils |
|
|
00
|
|
|
#13 | ||
![]() ![]() |
Testé avec MySQL :
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Je pense que c'est les opérateurs bit a bit qu'il te faut utiliser : http://dev.mysql.com/doc/refman/5.0/...functions.html Code SQL :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com