Mysql通过外部值加权唯一字段

时间:2012-04-03 13:28:19

标签: mysql sql

我目前正在寻找通过不属于结果集或数据库本身的权重来订购mysql结果的可能性。数据库和权重之间的唯一链接基于权重存在的一个唯一列。

更确切地说,我有MySql表

+-------------------+
|Food               |
+-------------------+
|id:int(unique)     |
|name:string        |
+-------------------+

和食物ID的一个外部权重来源。例如,用户将食物1称为100,食物2称为200,食物3称为50.我想要的是按照用户给出的重量来定量结果。

您是否有任何想法如何将这些外部信息应用到结果中?


编辑:我不是在寻找一个后来命令查询结果的解决方案!我希望mysql服务器对结果进行排序。

2 个答案:

答案 0 :(得分:4)

你走了:

SELECT
CASE id 
when 1 then 300
when 2 then 100
when 3 then 200
END as weight 
from tab 
order by weight;

您在此处执行的操作是将现有行值替换为自定义值,然后使用这些值对其进行排序。

答案 1 :(得分:0)

如果您的外部来源为php array。那么你应该使用php array sorting函数而不是在mysql查询中进行排序。

从mysql表中获取需要的数据并制作一个php数组。现在创建一个外部源数组并组合两个数组并使用array排序。

列出了她的PHP数组排序函数。您可以根据需要使用。

http://php.net/manual/en/array.sorting.php