Journal : Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

Posté par Dario Spagnolo (page perso, ) le 24 janvier 2004
0
Yo tous !

Un journal, deux questions qui n'ont rien à voir :

MySQL
====

Dans le cadre de mon serveur d'hébergement j'ai codé un système de questionnaire modulable, c'est à dire qu'au lieu d'avoir les questions representées par les champs d'une table et les réponses par des lignes de cette meme table, j'ai décidé de mettre les questions dans une table et les réponses dans une autre. Ainsi, je peux ajouter/enlever des questions sans toucher au scripts (php) ni à la structure des tables.
Je me retrouve avec la table des réponses qui a une gueule plus ou moins comme ça (je m'excuse par avance pour le formatage foireux!):

SITE QUESTION REPONSE
site1.zaup.org 1 0
site1.zaup.org 2 1
site1.zaup.org 3 1
site1.zaup.org 4 0
site1.zaup.org 5 1
site2.zaup.org 1 1
site2.zaup.org 2 1
site2.zaup.org 3 1
site2.zaup.org 4 0
site2.zaup.org 5 0
site3.zaup.org 1 0
site3.zaup.org 2 1
site3.zaup.org 3 0
site3.zaup.org 4 0
site3.zaup.org 5 0

Je voudrais maintenant effectuer des requetes booléennes comme par exemple :

tous les sites avec question 1 = 0 ET question 3 = 1

(réponse : seulement site1)

On aurait tout naturellement envie d'écrire ça :

select site from table where (question = 1 AND reponse = 0) AND (question = 3 AND reponse = 1)

mais il va de soi que ça ne marche pas !
Des gurus dans la salle ?


Rapport signal/bruit ADSL
================

Intro : j'ai une carte Bewan PCI ST et un abonnenemnt 512/128 chez Nerim

unicorn_status me dit que :
linserv:/# unicorn_status
Modem State : SHOWTIME_L0
Remote Report : Showtime
Last Failure :
Time Connected : 02:11:05
Modulation : ANSI
Rate Us/Ds (Kbps) : 160 608
Cap. Occupation Us/Ds (%) : 23 88
Noise Margin Us/Ds (dB) : 31 7
Attenuation Us/Ds (dB) : 31 52
Output Power Us/Ds (dBm) : 12 15
FEC Errors Us/Ds : 21 2
CRC Errors Us/Ds : 16 6
HEC Errors Us/Ds : 9 9
Driver Version : 0.7.4
Firmware Version : PCI_1.9.6.1

Est-ce que c'est bien ou c'est mal ? Une comparaison ?

> Lire le journal (10 commentaires, moyenne: 1,5).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

Posté par passant (page perso, ) le 24/01/2004 à 17:43. (lien). Évalué à 1.

Si ta table contient trois champs ta requête select doit mentionner les champs que tu vas utiliser.

SELECT * FROM TABLE
SELECT SITE,QUESTION,REPONSE FROM TABLE

--
--
  • [^]Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

    Posté par Dario Spagnolo (page perso, ) le 24/01/2004 à 17:52. (lien). Évalué à 1.

    Oui mais si je m'en fous des champs question et reponse ?
    Mais bon, là n'est pas le problème il me semble, si ?

    --
    Voici donc comment meurt la liberté, sous un tonnerre d'applaudissements...
  • [^]Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

    Posté par Maxime Petazzoni (page perso, ) le 24/01/2004 à 18:37. (lien). Évalué à 1.

    si tu ne prends qu'une seule colone :

    select distinct site from table where <WHERE_CONDITION>

    --
    Sam - Bulix.org - Zwe, moteur de weblog et site perso léger et modulaire.

Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

Posté par frantisek () le 24/01/2004 à 18:37. (lien). Évalué à 2.

Je ne suis pas sûr d'avoir bien compris ton problème mais la réponse qui me vient à l'esprit est de faire un UNION :
select site from table where question = 1 AND reponse = 0
UNION
select site from table where question = 3 AND reponse = 1

Par contre, je ne sais pas si les nouvelles versions de mysql l'implémentent.

  • [^]Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

    Posté par cumulus () le 24/01/2004 à 22:04. (lien). Évalué à 1.

    Oui, j'ai pensé à la même chose, sachant que le UNION est ensembliste tu n'auras pas de doublon (UNION ALL garde les doublons).

Re: Requete MySQL sur questionnaire modulable

Posté par Regis () le 24/01/2004 à 18:42. (lien). Évalué à 2.

Bon ben ne sais pas trop si ca va t'aider mais j'arrive au bon resultat avec ça dans postgresql (pas teste dans mysql mais a priori mysql connait aussi les jointures ou alors ça peut t'inspirer).


test=# select a.site from table a left outer join table b on a.site = b.site where (a.question ='3' and a.reponse ='1') AND (b.question ='1' and b.reponse ='0') group by a.site ;
site
----------------
site1.zaup.org
(1 ligne)


Veux bien aussi qu'un guru qui passerais par la donne son avis, je sais pas si c'est tres propre de faire des jointures sur la meme table.... m'enfin ca a l'air de fonctionner

mes 2 cts

Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

Posté par Obsidian () le 24/01/2004 à 18:58. (lien). Évalué à 2.

Pour le SQL, en effet, ça ne peut pas marcher ! Par contre, cela fonctionnerait très bien avec un OR central. Le problème vient du fait que ce qui t'intérresse, ce n'est pas seulement les lignes qui correspondent à un certain critère, mais le fait qu'il y ait PLUSIEURS de ces lignes, sur des critères différents. Il faut donc interroger deux fois la table, et interpoler les résultats. Donc, en une requête:

SELECT DISTINCT a.site FROM TABLE a, TABLE b
WHERE a.site = b.site
AND a.question = 1
AND a.reponse = 0
AND b.question = 3
AND b.question = 0

Et cela devrait fonctionner. Note qu'en temps normal il vaut mieux utiliser JOIN qu'un produit cartésien (selection de plusieurs tables séparées par des virgules), mais dans le cas présent il ne s'agit pas d'une réelle jointure, en tout cas d'une table dépendante d'une autre ...

Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

Posté par Robert Palmer (page perso, ) le 25/01/2004 à 00:42. (lien). Évalué à 2.

7 db de rapport signal/bruit sur la partie descendante c'est beaucoup. Il faudrait avoir au moins 10 db pour que la ligne ne génère plus d'erreur à cette vitesse de synchro.

Tu as pas mal d'atténuation aussi.

Dans l'état actuel de ta ligne, tu ne pourras pas avoir du 1024 kbit/s car avec une synchro à 608 kbit/s tu es à 88 % de ce que permet ta ligne.

Bref vérifie tes prises, tes câblages, les éventuelles rallonges, les filtres. Vérifie ausi que tu n'as pas de conensateurs dans tes prises (ceux qui sont un peu vieux ou mal branchés peuvent générer pas mal de parasites ; tu peux enlever ces condos sans problème). Il faut aussi que ta ligne ne soit pas proche d'une source de bruit, telle qu'un moteur, un équipement HF ou que sais-je...

  • [^]Re: Requete MySQL sur questionnaire modulable + rapport/signal bruit adsl

    Posté par Dario Spagnolo (page perso, ) le 25/01/2004 à 10:17. (lien). Évalué à 2.

    Merci beaucoup pour ces informations. Heureusement je n'ai aucune intention de passer au 1024 vu les prix de Nerim...
    Je me posais la question de la qualité du signal parce que justement j'avais revu assez radicalement la configuration des lignes téléphoniques chez moi et maintenant c'est bcp plus propre : le filtre adsl est branché sur un bout de cable posé par FT qui est juste à l'entrée de mon habitation, et le serveur est à 50 cm. Donc je pense que mon installation n'est pas en cause, c'est plutot ma distance de la centrale (je ne suis pas en centre ville).

    Merci en tout cas.

    --
    Voici donc comment meurt la liberté, sous un tonnerre d'applaudissements...

Connexion adsl

Posté par Antoine Reversat () le 25/01/2004 à 16:53. (lien). Évalué à 1.

Sachant que l'attenuation max pour etre eligible adsl c'est 60dB c'est moyen en Download. Mais bon t'a l'adsl je pense que c'est lessentiel ;)
a+

Revenir en haut de page