Quelqu'un peut-il me dire pourquoi ce qui suit se passe, et comment le réparer?La requête MySQL est devenue folle?
J'ai une requête MySQL avec une clause ORDER BY qui ressemble à ceci ..
ORDER BY (did_voteup-did_votedown) DESC, did_voteup DESC
Il devrait commander les résultats par leur note "efficace", comme dans ..
1st. 10 up - 1 down = 9 effective
2nd. 10 up - 5 down = 5 effective
3rd. 10 up - 7 down = 3 effective
Cependant, comme vous pouvez le voir sur my page here, il est leur ordonnant de mal, et de me donner ce ..
1st. 1 up - 3 down = -2 effective
2nd. 16 up - 6 down = 10 effective
3rd. 15 up - 5 down = 10 effective
Évidemment, cette rangée 1ère place ne devrait pas être là.
Plus d'informations ..
CREATE TABLE dictionary_definitions (
did_id int(11) unsigned NOT NULL auto_increment,
did_wordid int(11) unsigned NOT NULL default '0',
did_userid int(11) unsigned NOT NULL default '0',
did_status tinyint(1) unsigned NOT NULL default '0',
did_date int(11) NOT NULL default '0',
did_definition text,
did_example text,
did_votecheck int(11) NOT NULL default '0',
did_voteup smallint(5) unsigned NOT NULL default '0',
did_votedown smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (did_id),
KEY (did_wordid),
KEY (did_userid)
) ENGINE=MyISAM;
SELECT a.did_id, a.did_userid, a.did_definition, a.did_example,
a.did_votecheck, a.did_voteup, a.did_votedown, b.user_name, b.user_extra8
FROM dictionary_definitions AS a LEFT JOIN users AS b ON a.did_userid=b.user_id
WHERE did_wordid=4
ORDER BY (did_voteup-did_votedown) DESC, did_voteup DESC LIMIT 0, 5
Quelle est la requête complète? – scottm
Ressemble à un problème de type de données, pouvez-vous s'il vous plaît montrer toute la requête et la structure de la table s'il vous plaît? –
Comme David a dit, si le champ est une chaîne, il mettra 1, 10, 2 type de folie. – Deverill