[SQL] Problème de requête
Résolu/Fermé
modjodandy
Messages postés
5
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
26 mars 2008
-
26 mars 2008 à 16:49
modjodandy Messages postés 5 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 26 mars 2008 - 26 mars 2008 à 18:13
modjodandy Messages postés 5 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 26 mars 2008 - 26 mars 2008 à 18:13
A voir également:
- [SQL] Problème de requête
- Blob sql ✓ - Forum Webmastering
- Récupération serveur sql - Télécharger - Gestion de données
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Sql lister les tables ✓ - Forum Programmation
- Requête sql doublons sur 2 champs ✓ - Forum Programmation
4 réponses
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
26 mars 2008 à 17:09
26 mars 2008 à 17:09
c'est sous quel SGBD?
c'est pour utiliser dans un programme, derrière, ou juste pour faire de l'affichage (genre PHP/MySQL)?
si tu as un moteur PL/SQL, ça pourrait résoudre ton problème.
c'est pour utiliser dans un programme, derrière, ou juste pour faire de l'affichage (genre PHP/MySQL)?
si tu as un moteur PL/SQL, ça pourrait résoudre ton problème.
Utilisateur anonyme
26 mars 2008 à 17:20
26 mars 2008 à 17:20
Si ton champs votes est de type chaine de caractères tu peux faire :
SELECT LENGTH(votes)/2 FROM TA_TABLE
modjodandy
Messages postés
5
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
26 mars 2008
26 mars 2008 à 17:33
26 mars 2008 à 17:33
yes ça fonctionne! Le seul problème c'est que j'ai des nombres décimaux et pas de nombres entiers :
Id du post : 18 Score : 2.0000
Une solution pour virer cette jolie brochette de zéros?
au pire j'ai utilisé la fonction ceil() dans mon code PHP mais si il existe l'équivalant sql, je prends!
Id du post : 18 Score : 2.0000
Une solution pour virer cette jolie brochette de zéros?
au pire j'ai utilisé la fonction ceil() dans mon code PHP mais si il existe l'équivalant sql, je prends!
Utilisateur anonyme
26 mars 2008 à 17:50
26 mars 2008 à 17:50
Tu peux utiliser la fonction CEILING (arrondi par excès), FLOOR (arrondi par défaut) avec MySQL :
SELECT CEILING(LENGTH(votes)/2) FROM TA_TABLE
modjodandy
Messages postés
5
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
26 mars 2008
26 mars 2008 à 17:55
26 mars 2008 à 17:55
Merci beaucoup pour ton aide!!!
chantaussel
Messages postés
137
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
9 juillet 2014
30
26 mars 2008 à 17:55
26 mars 2008 à 17:55
Bonjour!
Je sais pas si ça va te servir (car tu es en passe de trouver une solution à ton problème), mais j'ai lu quelque part que dans une bdd c'était "pas le top" d'avoir plusieurs valeurs dans un même champ. (voir la discussion ici)
Je sais pas ce que ça vaut, mais il semblerait que ce soit mieux d'avoir une "table de liaison" du style:
En fait tu es le dans le cas où tu as une "cardinalité n-n" car :
- chaque utilisateur peut voter pour plusieurs messages
- et chaque message peut être choisi par plusieurs utilisateurs
Et en cas de cardinalité n-n parait-il qu'une table de liaison fait bien l'affaire!
Du coup, après il te suffit de compter le nombre de fois où le message apparait dans la base pour avoir le score du message, et si un jour tu veux faire la liste des messages pour lesquels un même utilisateur à voté ce sera facile!
En espérant que ça soit utile
;)
Je sais pas si ça va te servir (car tu es en passe de trouver une solution à ton problème), mais j'ai lu quelque part que dans une bdd c'était "pas le top" d'avoir plusieurs valeurs dans un même champ. (voir la discussion ici)
Je sais pas ce que ça vaut, mais il semblerait que ce soit mieux d'avoir une "table de liaison" du style:
id post utilisateur ayant voté pour ce post ------------------------------------------------------------------------------------ 1 10 2 2 10 3 3 11 2
En fait tu es le dans le cas où tu as une "cardinalité n-n" car :
- chaque utilisateur peut voter pour plusieurs messages
- et chaque message peut être choisi par plusieurs utilisateurs
Et en cas de cardinalité n-n parait-il qu'une table de liaison fait bien l'affaire!
Du coup, après il te suffit de compter le nombre de fois où le message apparait dans la base pour avoir le score du message, et si un jour tu veux faire la liste des messages pour lesquels un même utilisateur à voté ce sera facile!
En espérant que ça soit utile
;)
modjodandy
Messages postés
5
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
26 mars 2008
26 mars 2008 à 18:13
26 mars 2008 à 18:13
Merci pour cette précision, je vais creuser ça à la petite cuillère!
26 mars 2008 à 17:11
merci à toi!