Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Php 根据两列的差异对数据进行排序_Php_Mysql_Sorting - Fatal编程技术网

Php 根据两列的差异对数据进行排序

Php 根据两列的差异对数据进行排序,php,mysql,sorting,Php,Mysql,Sorting,我如何在mysql中根据Vote_Up和Vote_Down的差异对上述数据进行排序,而不必创建另一列来存储它们的差异 ID Vote_Up Vote_Down ***DIFFERENCE*** 1 3 1 2 2 1 3 -2 3 23 7 16 4 5 1

我如何在mysql中根据Vote_Up和Vote_Down的差异对上述数据进行排序,而不必创建另一列来存储它们的差异

ID    Vote_Up    Vote_Down    ***DIFFERENCE***
1         3            1             2
2         1            3            -2
3         23           7             16
4         5            1             4
5         7            5             2
6         2            2             0
7         9            1             8    
因此,它将按以下方式进行排序:

vote_up - vote_down

您可以将它们减去:

ID    Vote_Up    Vote_Down    ***DIFFERENCE***
3         23           7             16
7         9            1             8    
4         5            1             4
5         7            5             2
1         3            1             2
6         2            2             0
2         1            3            -2

您可以将它们减去:

ID    Vote_Up    Vote_Down    ***DIFFERENCE***
3         23           7             16
7         9            1             8    
4         5            1             4
5         7            5             2
1         3            1             2
6         2            2             0
2         1            3            -2
@科内拉克: 差异不是一个领域。 使用此SQL查询:

SELECT * FROM table ORDER BY Vote_Up-Vote_Down DESC

@科内拉克: 差异不是一个领域。 使用此SQL查询:

SELECT * FROM table ORDER BY Vote_Up-Vote_Down DESC

另一个变量(带有子查询)-

另一个变量(带有子查询)-


**无需创建另一列来存储其差异更正。计算每行的数据。当然,您也可以选择数据作为列本身:
select*,Vote\u Up-Vote\u Down作为与表顺序的差异,按Vote\u Up-Vote\u Down DESC
**,而无需创建另一列来存储其差异正确性。计算每行的数据。当然,您也可以选择数据作为列本身:
select*,Vote\u Up-Vote\u Down作为与表顺序的差异,按Vote\u Up-Vote\u Down DESC
。欢迎使用StackOverflow!谢谢你的评论,但你不能在回答中提到另一个用户的@name来表示你的意思——只能在他对问题/答案/评论的评论中。你可以在这里发布你的答案,通常会对我的问题留下评论“差异不是一个领域,看看我的答案,寻找另一个解决方案”。当然,首先你需要50%的声誉才能在任何地方发表评论……没问题。最初的几天并不能很好地代表实际的StackOverflow系统,因为您仍然受到声誉的限制。一旦你有了100,一个世界就会打开,然后在3k你就可以自由回家了:)欢迎来到StackOverflow!谢谢你的评论,但你不能在回答中提到另一个用户的@name来表示你的意思——只能在他对问题/答案/评论的评论中。你可以在这里发布你的答案,通常会对我的问题留下评论“差异不是一个领域,看看我的答案,寻找另一个解决方案”。当然,首先你需要50%的声誉才能在任何地方发表评论……没问题。最初的几天并不能很好地代表实际的StackOverflow系统,因为您仍然受到声誉的限制。一旦你有了100,一个世界就打开了,到了3k,你就可以自由回家了:)
SELECT * FROM (
  SELECT ID, Vote_Up, Vote_Down, Vote_Up - Vote_Down DIFFERENCE FROM table_name
) t
ORDER BY DIFFERENCE;