我有一个大型的产品数据库,每个星期天,我的脚本正在激活50个新产品。 的事情是,根据我的脚本中的一些规则,即时通讯寻找一些产品,我应该优先激活。 (对于你的例子,可以说它应该总是优先激活名称为'hello kitty'和'meshuggah'的产品,在其他所有方面)我如何通过优先ID列表对mysql结果进行排序?
我的数据库表包含有关产品的信息和唯一的ID。 可以说,脚本在标题中找到5个这样的id,并且有hello kitty。
因此,我如何使查询,以便优先项目将在上面,然后是id desc?
这里的IM以后有什么一些伪代码:
SELECT * FROM products order by (id='59', id='47', id='28', id='29', id='20'), id desc limit 50
的结果应该给我的ID 59,47,28,29和20,再其次是在产品表中其他ID通过ID进行排序降。
在一个查询中可能吗?
啊,谢谢,每天学习新东西:)只是不得不添加desc后面的字段或其他字段id出来在底部 – 2013-02-25 14:35:12
@KristianRafteseth这是伟大的':D' – 2013-02-25 14:36:50
请注意,这是可行的,因为FIELD()返回0如果'id'(在这种情况下)的值没有找到。通过使命令DESC将零排序到底部,并使用第二个搜索词(这里是'id')对这些排序。 – 2013-02-25 14:46:38