Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql通过外部值对唯一字段进行加权_Mysql_Sql - Fatal编程技术网

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

Mysql通过外部值对唯一字段进行加权,mysql,sql,Mysql,Sql,我目前正在寻找一种可能性,通过权重排序mysql结果,这些权重不是结果集或数据库本身的一部分。数据库和权重之间的唯一链接基于权重存在的唯一列 更准确地说,我有MySql表 +-------------------+ |Food | +-------------------+ |id:int(unique) | |name:string | +-------------------+ 食物ID的一个外部重量来源。例如,用户将食物1的权重设置为10

我目前正在寻找一种可能性,通过权重排序mysql结果,这些权重不是结果集或数据库本身的一部分。数据库和权重之间的唯一链接基于权重存在的唯一列

更准确地说,我有MySql表

+-------------------+
|Food               |
+-------------------+
|id:int(unique)     |
|name:string        |
+-------------------+
食物ID的一个外部重量来源。例如,用户将食物1的权重设置为100,食物2的权重设置为200,食物3的权重设置为50。我想要的是根据用户给定的权重对结果进行排序

你知道我如何将这些外部信息应用到结果中吗


编辑:我不是在搜索一个解决方案,该解决方案会在以后对查询结果进行排序!我希望结果由mysql服务器排序。

给你:

SELECT
CASE id 
when 1 then 300
when 2 then 100
when 3 then 200
END as weight 
from tab 
order by weight;
这里要做的是用自定义值替换现有行值,然后用这些值对其进行排序。

现在开始:

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

这里要做的是用自定义值替换现有行值,然后用这些值对其进行排序。

如果外部源是
php
数组
。然后您应该使用php
array
排序
函数,而不是mysql查询中的排序

从mysql表中获取需要的数据,并将其生成一个php数组。现在制作一个外部源数组,并将这两个数组组合起来,然后使用
array
排序

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


如果您的外部源代码是
php
array
。然后您应该使用php
array
排序
函数,而不是mysql查询中的排序

从mysql表中获取需要的数据,并将其生成一个php数组。现在制作一个外部源数组,并将这两个数组组合起来,然后使用
array
排序

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


您所说的外部源是什么意思?我目前正在用php编写此代码,因此外部源是一个php数组(以前由REST请求填充)。您所说的外部源是什么意思?我目前正在用php编写此代码,因此外部源是一个php数组(以前由REST请求填充)在这种情况下,这正是我一直在寻找的。非常感谢你!如果它是正确的,你可以接受它作为正确的答案您知道mysql是否将权重映射到id,以及索引是否也可以与此映射一起使用吗?我不认为索引会出现在这里,因为这是一个临时映射,索引通过数据库存储在内存中。但我不能完全确定,我会尝试找到答案,如果我得到什么,我会发布。@Subodh嘿,很抱歉打扰你,但我也有同样的问题,我想知道是否有其他解决方案?我使用ORM,我并不认为构建1500个条件的案例(我必须对整个表进行排序,每页只返回12个结果)是个好主意。这正是我一直在寻找的。非常感谢你!如果它是正确的,你可以接受它作为正确的答案您知道mysql是否将权重映射到id,以及索引是否也可以与此映射一起使用吗?我不认为索引会出现在这里,因为这是一个临时映射,索引通过数据库存储在内存中。但我不能完全确定,我会尝试找到答案,如果我得到什么,我会发布。@Subodh嘿,很抱歉打扰你,但我也有同样的问题,我想知道是否有其他解决方案?我使用ORM,我真的不认为构建1500个条件(我必须对整个表进行排序,每页只返回12个结果)的案例是个好主意。这对于少量数据来说很好。在我的例子中,db表包含超过一百万个条目。因此,仅仅为了排序和过滤集合到50个条目的第一步,获取完整的dataset int应该比使用mysql功能更昂贵。不过,谢谢你的回答!对于少量数据来说,这看起来不错。在我的例子中,db表包含超过一百万个条目。因此,仅仅为了排序和过滤集合到50个条目的第一步,获取完整的dataset int应该比使用mysql功能更昂贵。不过,谢谢你的回答!