Here is my query
(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only three doors%" OR `joke` LIKE "%only three doors%") ORDER BY `ups` DESC,`downs` ASC)
UNION
(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only%" OR `joke` LIKE "%only%") ORDER BY `ups` DESC,`downs` ASC)
UNION
(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%three%" OR `joke` LIKE "%three%") ORDER BY `ups` DESC,`downs` ASC)
UNION
(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%doors%" OR `joke` LIKE "%doors%") ORDER BY `ups` DESC,`downs` ASC)
LIMIT 0, 30
For some reason it doesn’t seem to order by ups or downs…it just tosses me back the results in the order they are naturally in the database.
When I cut it down to only one query, it works fine, but other than that, it seems to ignore it.
I also don’t want to order by the entire results, or I would have put LIMIT 0,30 Order By blah
From MySQL documentation:
Basically the only time an
ORDERin a union will be useful is if you are usingLIMITas well.So if you query was like this:
Then you would see the first ten records that would be returned based on that order, but they wouldn’t necessarily be displayed in order.
UPDATE:
Try this –