8
votes

Obtenir tous les résultats en utilisant où clause

J'ai une fonction qui prend une dispute utilisée dans la clause

fonction (String X) -> Maintenant, cela créera une requête SQL qui donne P>

select colname from tablename;


0 commentaires

9 Réponses :


13
votes

Laissez simplement la condition de l'état.

Si vous voulez vraiment que cela soit compliqué, utilisez xxx

qui ne filtrera que des nulls.


0 commentaires

0
votes

Si vous devez autoriser "tous" à passer par la valeur de paramètre à votre fonction, vous devrez mettre un code de manipulation dans votre fonction pour construire votre instruction SELECT en conséquence. C'est à dire. Vous pouvez détecter si le paramètre est «tout» dedans, puis omettez la clause WHERE de votre relevé SQL. Si une valeur autre que «tout» vient à travers, vous pouvez inclure la clause WHERE avec la valeur de filtrage correspondante du paramètre.

Un exemple d'un morceau de code pour le faire serait; P>

IF x = 'ALL'
THEN
   SELECT COLNAME FROM TABLENAME;
ELSE
   SELECT COLNAME FROM TABLENAME WHERE COLUMNNAME = X;
END IF;


0 commentaires

0
votes

On ne sait pas quelle langue que vous utilisiez pour votre fonction, mais vous devez analyser en quelque sorte le «tout» avant de vous rendre à SQL:

public void query(String param) {
  String value = "":
  switch (param) {
    case 'All':
      value = "*";
      break;
    default:
      value = param;
  }
  String sql = "select colname from tablename where colname="+value;
  //make the query
}


1 commentaires

Ce n'est pas explicite, mais la lecture entre les lignes qu'ils semblent utiliser PL / SQL dans MySQL.



7
votes
select colname from tablename 
where columnname=(case when @x ="All" then columnname
                  else  @x end)

0 commentaires

0
votes

Donnez une vérification conditionnelle dans votre code (supposer Java) pour ajouter le clause uniquement lorsque x! = 'Tout' xxx < / p>


0 commentaires

3
votes

Essayez ceci xxx

espère que ce qui précède fonctionnera


0 commentaires

1
votes

J'ai eu le même problème il y a quelque temps et cette solution a fonctionné pour moi xxx


2 commentaires

Soins à élaborer?


Le "ou" dans la clause de l'endroit où fait le tour ici. Si la condition ColumnameName = X est remplie, la clause WHERE filtre les résultats. Autres ci-dessus si le x = 'tout' alors la clause d'où est contournée. Éliminant ainsi le filtre.



1
votes
const queryoptions = req.query.id!=null?{id : req.query.id } : true;
let query = 'SELECT * FROM table_name WHERE ?';
db.query(query,queryoptions,(err,result)=>{
res.send(result);
}

0 commentaires

2
votes

où 1 = 1 a fonctionné pour moi, bien que la clause a été utilisée, tous les enregistrements ont été sélectionnés.

Vous pouvez aussi essayer

[Any_column_name] = [colonne_name_in_lhl]

(LHL = côté gauche.)

Reportez-vous à ma réponse pour plus de détails


0 commentaires