根据记录号将记录冒泡到mySQL查询的顶部

时间:2011-01-05 22:55:29

标签: mysql sql coldfusion

如何根据PK获取查询以将特定记录冒泡到结果顶部?

我有一个基于部门主键的产品类列表。我的产品有一个已经与之关联的类但是我想向用户提供该产品可用的其他类,我希望它的当前类是最佳结果。

这有意义吗?

3 个答案:

答案 0 :(得分:4)

这将使第123行成为第一个结果:

SELECT ... ORDER BY (key_col = 123) DESC

如果key_col123,则比较结果为1,否则为0。如果您ORDER按降序排列,1首先出现。

答案 1 :(得分:0)

更灵活的解决方案是在表格中添加一个重量列。根据记录编号或人工主键(尤其是插入时自动生成的主键)将导致以后出现问题,尤其是在数据库服务器之间复制数据时。

添加一个新列,允许您为记录指定权重,然后按权重列排序,作为ORDER BY语句中的第二列。权重列中的值不需要重要,只要它们是数字并允许按照您希望的方式排序。

答案 2 :(得分:0)