Page 1 sur 1

Group by...

Posté : 28 janv. 2009, 14:54
par albius
Bonjour,

Je cherche simplement à regrouper sur une table des données ayant le même nom... La clause GROUP BY me parait approprié mais le serveur me renvoie une erreur. Dans un premier temps, la table en question:

Code : Tout sélectionner

-- Structure de la table `produits` CREATE TABLE `produits` ( `idPdts` int(4) NOT NULL auto_increment, `designation` text collate utf8_unicode_ci NOT NULL, `condition` text collate utf8_unicode_ci NOT NULL, `idFrs` int(2) NOT NULL, `idCat` int(2) NOT NULL, PRIMARY KEY (`idPdts`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ; -- Contenu de la table `produits` INSERT INTO `produits` (`idPdts`, `designation`, `condition`, `idFrs`, `idCat`) VALUES (1, 'Bardes', 'kilo(s)', 1, 1), (2, 'Faux-filet', 'kilo(s)', 1, 1), (3, 'Caille', 'unité(s)', 2, 1), ...
La requête suivante devrait regrouper les données du champ 'condition' ayant le même nom
$select = 'SELECT condition FROM produits GROUP BY condition';
le message d'erreur du serveur:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition FROM produits GROUP BY condition' at line 1
Et j'avoue ne pas comprendre où pourrait se situer l'erreur...
merci,

Posté : 28 janv. 2009, 15:11
par Berzemus
condition est un mot réservé par Mysql. Il fait partie du langage, c'est donc pas recommandable de l'utiliser. Tu peux toujours utiliser des guillemets inversés:

Code : Tout sélectionner

SELECT `condition` FROM produits GROUP BY condition
(je pense que je les ais mal inversés, fichu clavier français.. regarde comment phpmyadmin écrit la requête, il aura les bons guillemets (qui sont en réalité des accents))

re:

Posté : 28 janv. 2009, 15:53
par albius
Ah oui! Il fallait effectivement le savoir! Merci bien Berzemus.