这里是我的查询mysql命令似乎不工作
(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
出于某种原因,它似乎并没有跌宕起伏或订购...它只是扔我回来的结果他们在数据库中自然的顺序。
当我将它缩减为只有一个查询,它工作正常,但除此之外,它似乎忽略它。
我也不想被整个结果下令,否则我就已经把LIMIT 0,30 Order By blah
对于如何以我想要的方式工作,您有什么想法吗?本质上,我想结合不同的查询,并且每个查询都有各自的排序和起伏,然后相互组合。 – 2011-12-30 23:58:57
所以第一个查询排序,然后第二个排序。如果第一个查询大于30,那么它只会显示第一个查询中的前30个。 – 2011-12-30 23:59:45
Bleh,这是一个艰难的。你是说你不想对整个集合进行正确排序?只需要将一个有序集合追加到另一个集合的末尾,并拿出第一个30? – 2011-12-31 00:03:03