Services webmasters
Partenaires
Jeux concours gratuits
 
Utiliser les clefs étrangères
<<<
Recherche sur deux clefs Calculer les visites par jour
>>>

3.5 Exemples de requêtes usuelles
3 Tutoriels d'introduction
 Manuel de Référence MySQL 4.1 : Version Française

La valeur maximale d'une colonne
La ligne contenant le maximum d'une certaine colonne
Maximum d'une colonne par groupe
La ligne contenant la plus grande valeur d'un certain champ par rapport à un groupe
Utiliser les variables utilisateur
Utiliser les clefs étrangères
->Recherche sur deux clefs
Calculer les visites par jour
Utiliser AUTO_INCREMENT

3.5.7 Recherche sur deux clefs

MySQL n'optimise pas encore quand vous effectuez des recherches sur deux clefs différentes combinées avec OR (la recherche sur une clef avec différentes parties OR est elle pas mal optimisée) :

SELECT champ1_index, champ2_index FROM test_table WHERE champ1_index = '1'
OR  champ2_index = '1'
La raison est que nous n'avons pas trouvé le temps suffisant pour parvenir à un moyen efficace de gérer cela dans un cas général. (En comparaison, la gestion de AND est maintenant complètement générale et fonctionne très bien.) Pour le moment, vous pouvez résoudre ce problème efficacement en utilisant une table temporaire ( TEMPORARY ). Ce type d'optimisation est très utile si vous utilisez des requêtes très complexes et que le serveur SQL fait une optimisation dans le mauvais ordre.

CREATE TEMPORARY TABLE tmp
SELECT champ1_index, champ2_index FROM test_table WHERE champ1_index = '1';
INSERT INTO tmp
SELECT champ1_index, champ2_index FROM test_table WHERE champ2_index = '1';
SELECT * from tmp;
DROP TABLE tmp;
La méthode ci-dessus pour résoudre cette requête est en effet une UNION de deux requêtes. Syntaxe de UNION .

<< Recherche sur deux clefs >>
Utiliser les clefs étrangères Exemples de requêtes usuelles Calculer les visites par jour
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -