Vous n'êtes pas connecté - 0 membre connecté
Catégories
Graphisme
Flash (48)
Print (64)
Programmation
PHP (63)
Base de données (17)
ASP (2)
CSS (23)
Hardware
PC (34)
Mac (14)
Linux (5)
Divers
Blabla (240)
877 Sujets
11855 Réponses
Programmation > Base de données > MySQL > Eviter la surcharge...
MySQL > Eviter la surcharge de ||
 hello,

je cherche à simplifier mes requêtes mySQL, j'ai d'abord jeté un oeil sur la doc mais je n'arrive pas à trouver la syntaxe qui va bien (si elle existe) pour simplifier une requête du genre:

SELECT * FROM maTAble WHERE champ1=1 || champ1=2 || champ1=3 || champ1=4 || champ1=5 ||champ1=6
C'est souvent pour des requêtes liées à un choix utilisateur qui peut être assez important. Merci
Posté le 02 04 2007 à 10h07
tyler - Membre - www

Réponses - MySQL > Eviter la surcharge...
<< 1 2 >>
 hum, déjà tu peux faire :

SELECT * FROM maTable WHERE champ1 > 0 && champ1 <= 6;
Posté le 02 04 2007 à 11h28
benzor - Administrateur - www
xD
Posté le 02 04 2007 à 11h45
mob - Modérateur - www
 ou

SELECT * FROM maTable WHERE champ1 BETWEEN 1 AND 6

BETWEEN min AND max sachant que min & max sont inclus > = min && <= max
si max tombe à l'eau, min se mine un max

ou

SELECT * FROM maTable WHERE champ1 IN (1,2,3,4,5,6)
cette dernière est hyper mega cool dans les cas de non-suite IN (1,3,5,6,7,9) par exemple
Posté le 02 04 2007 à 12h09
gom - Administrateur - www
... Tu peux aussi (par exemple) créer un champs indexé champX. Quand toute les conditions champX=X sont remplies tu UPDATE ce champ et fait ta SELECT dessus ensuite ?
... La même avec une table qui te sert pour des jointures, utiles lorsque maTAble contient moult enregistrements et est sollicitée régulièrement.
... ecc

Au lieu de chercher "simplifier", tu as regardé dans "optimisé" ?
Posté le 02 04 2007 à 12h09
cob - Membre
Merci à tous, j'ai retenu la solution de GOM car c'est exactement ce que je recherchai, car effectivement ce sont des non suite et pas forcément des chiffres (il faut que je teste avec des chaines...), je fais encore un peu le boulet mais impossible de trouver la doc sur un 'SELECT IN' sur dev.mysql.com ?
Posté le 02 04 2007 à 12h37
tyler - Membre - www
SELECT * FROM maTable WHERE FIND_IN_SET(champ1 , '1,2,25,toto,NULL')=1
Posté le 02 04 2007 à 13h34
Dnepr - Membre
Tyler > télécharge le manuel en chm

Il se peut que le chm "ne fonctionne pas" (erreur 404) ou truc du genre. ca le fait surtout sous winxp2.
Si c'est le cas, pas de panique. Bouton droit sur le fichier -> propriétés -> débloquer

PS : petite astuce valable pour tous les .chm
Posté le 02 04 2007 à 15h45
gom - Administrateur - www
 le IN est très utile, tout comme NOT IN.

Trouver les produits non vendus:
SELECT id_produit
FROM produits 
WHERE id_produit NOT IN (SELECT DISTINCT id_produit FROM ventes);
etc Sympa l'astuce, le pb ne m'est jamais arrivé mais je note, ça servira surement un jour. ;)
Posté le 02 04 2007 à 18h15
McFly - Membre - www
je cherche une astuce pour debugger la balise [ code ]
ca me fait soucis quand même
Posté le 03 04 2007 à 10h38
gom - Administrateur - www
Gom > On peut peut-être aider ?
Posté le 03 04 2007 à 11h18
cob - Membre
<< 1 2 >>
Sujets Base de données
<< 1 2 >>
Classer une requête
Auteur : aguenard
Posté le 24 04 2007 à 11h17
5 Réponses (Nouveau sujet)
Sujet visité 910 fois
MySQL > Eviter la (...)
Auteur : tyler
Posté le 02 04 2007 à 10h07
16 Réponses (Nouveau sujet)
Sujet visité 850 fois
MySql et hebergement
Auteur : nanook
Posté le 15 03 2007 à 09h04
7 Réponses (Nouveau sujet)
Sujet visité 644 fois
Comparaison de (...)
Auteur : airvai
Posté le 01 03 2007 à 10h05
6 Réponses (Nouveau sujet)
Sujet visité 860 fois
[résolu]sql 95 bdd !
Auteur : senkante
Posté le 08 02 2007 à 11h38
4 Réponses (Nouveau sujet)
Sujet visité 500 fois
[annulé]against
Auteur : veensez
Posté le 27 10 2006 à 20h15
5 Réponses (Nouveau sujet)
Sujet visité 778 fois
MySQL - Méthode de (...)
Auteur : benzor
Posté le 25 07 2006 à 17h20
24 Réponses (Nouveau sujet)
Sujet visité 726 fois
<< 1 2 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006