Requete sql, sélectionner un champ vide

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 30 Novembre 2008.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    533
    J'aime reçus:
    0
    Bonjour, j'ai un problème

    En fait j'ai 10 champs dans une table sql :

    champ1, champ2, champ3 ... champ10.

    En fait j'aimerais avec une requête sélectionner dans tous ces champs sql, un champ qui serait égal à 0 (si il y en a).

    Comment je pourrais faire?
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 978
    J'aime reçus:
    121
    Tu peux en avoir plusieurs par enregistrement où il n'y en a qu'un ?

    Sinon tu peux déjà regarder avec un select case sql, ca se fait bien (même si c'est un peu lourd).
     
  3. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    SELECT DISTINCT id FROM table WHERE champ1='' OR champ2='' OR ....champn=''

    non ?
     
  4. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Ca sent l'optimisation à plein nez tout ça :p
     
  5. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    533
    J'aime reçus:
    0
    suite

    Imaginons que

    bag1id = 10
    bag2id = 14
    bag3id = 0
    bag4id = 33

    Je cherche à sélectionner avec une requete le champ qui est égal à 0

    $bagquery = doquery("SELECT DISTINCT id FROM {{table}} WHERE bag1id='0' OR bag2id='0' OR bag3id='0' OR bag4id='0' AND id='".$userrow['id']."'", "users");

    Ca me retourne pas le nom du champ en question
     
  6. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 978
    J'aime reçus:
    121
    Forcément, tu ne sélectionne que l'id.

    Si tu veux sélectionner le champ (s'il y en a un) qui est égal à zéro, tu vas (je pense) devoir passer par du select case en mysql, comme je le disais plus haut.

    Ou alors (plus simple) de ramener tous tes champs potentiellement égaux à 0 et de faire les tests en php (enfin tout dépend du contexte dans lequel tu veux faire ça).
     
  7. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    Re: suite

    Ah non ça c'est sûr ... a part tester en PHP après ... je vois pas.

    Et pour l'optimisation ... il y a pire, franchement !

    EDIT : grilled by UsagiYojimbo. Je te laisse tester les "cases". Merci de donner ta solution quand tu auras trouvé !
     
  8. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    533
    J'aime reçus:
    0
    suite

    Je comprends pas ce que tu veux dire par select case, tu peux me montrer un exemple ?
     
  9. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
  10. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Re: suite

    Je ne parlais pas pour toi mais de la structure de sa table. Il aurait été préférable d'utiliser 2 tables. En une seule requête avec jointure ça aurait pu être possible simplement ...
     
  11. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    Ca ne répond pas au problème, mais déjà pour la clause "where" tu peux avoir un code plus compact/lisible :
    Code:
    where 0 in (champ1, champ2, champ3 ... champ10)
    Sinon j'aurais tendance à rejoindre YoyoS : visiblement la structure de la table n'est pas adaptée.
     
Chargement...
Similar Threads - Requete sql sélectionner Forum Date
[MySQL] sélectionner la dernière note pour chaque élève en une seule requète ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012
Réunir 2 requetes sql (ORDER BY ASC et DESC) Développement d'un site Web ou d'une appli mobile 29 Août 2021
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Prestashop - Comportement bizarre d'une requête SQL e-commerce 1 Décembre 2018
Requête Mysql avec des string Développement d'un site Web ou d'une appli mobile 6 Février 2018
La syntaxe SQL permet-elle plusieurs mots-clefs dans une (sous-)requête identique ? Développement d'un site Web ou d'une appli mobile 17 Août 2017
Requete mysql Développement d'un site Web ou d'une appli mobile 30 Mai 2017
Problème requête mysql Développement d'un site Web ou d'une appli mobile 1 Mars 2017
Reduire et optimiser une requete sql Développement d'un site Web ou d'une appli mobile 8 Décembre 2016
Anomalie : beaucoup trop de requêtes SQL Administration d'un site Web 18 Novembre 2016
Besoin d'aide pour requête SQL PHP Développement d'un site Web ou d'une appli mobile 12 Novembre 2016
[php/mysql] Eviter de faire 20 requêtes pour un affichage Développement d'un site Web ou d'une appli mobile 19 Janvier 2016
requete Mysql et classement des résultats Administration d'un site Web 1 Novembre 2015
Mysql requête imbriquée Développement d'un site Web ou d'une appli mobile 1 Octobre 2015
Requetes SQL parfois lente : Selon show profile -> Pb opening table Développement d'un site Web ou d'une appli mobile 8 Juillet 2015
PDO Comment vérifier le SQL d'une Requête ??? Développement d'un site Web ou d'une appli mobile 4 Février 2015
Demande Requête SQL Développement d'un site Web ou d'une appli mobile 19 Janvier 2015
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
Redirection htaccess ou requête sql ? Netlinking, backlinks, liens et redirections 18 Janvier 2014