在MySql/php中基于几乎相同的多列对记录进行排序

在MySql/php中基于几乎相同的多列对记录进行排序,php,mysql,sorting,Php,Mysql,Sorting,假设MySql表中有以下内容: 在本表中,某些记录(子1-7)的值可能相同或接近相同;就像比尔、布什和凯特的情况一样。 我想根据记录之间的百分比相关性对表进行排序。你可以看到比尔和凯特几乎一模一样,其次是布什。该表应按以下顺序排序:比尔、布什、盖茨等。该表包含200多条记录,其中许多记录的值几乎相同。 如何在php中实现这一点?有什么想法吗 添加:查看响应后: 请注意两项记录: 22+45+67+87+37+54+63=375 45+65+35+45+66+60+59=375 总计375,

假设MySql表中有以下内容:

在本表中,某些记录(子1-7)的值可能相同或接近相同;就像比尔、布什和凯特的情况一样。 我想根据记录之间的百分比相关性对表进行排序。你可以看到比尔和凯特几乎一模一样,其次是布什。该表应按以下顺序排序:比尔、布什、盖茨等。该表包含200多条记录,其中许多记录的值几乎相同。 如何在php中实现这一点?有什么想法吗

添加:查看响应后: 请注意两项记录:

  • 22+45+67+87+37+54+63=375

  • 45+65+35+45+66+60+59=375

总计375,但它们不相同。我不希望出现这种情况。

试试看

select * 
from your_table
order by abs(sub1 - avg(sub1)) + 
         abs(sub2 - avg(sub2)) + 
         abs(sub3 - avg(sub3)) + 
         abs(sub4 - avg(sub4)) + 
         abs(sub5 - avg(sub5)) + 
         abs(sub6 - avg(sub6)) + 
         abs(sub7 - avg(sub7)) + 
我应该试试:

SELECT Name, ((Sub1 + Sub2 + Sub3 + Sub4 + Sub5 + Sub6 + Sub7) / 7) AS score FROM table
ORDER BY score DESC
试试这个:

SELECT * FROM <tablename>
ORDER BY (sub1+sub2+sub3+sub4+sub5+sub6+sub7) DESC
从中选择*
订单依据(sub1+sub2+sub3+sub4+sub5+sub6+sub7)描述

注:无需按、、进行区分,因为每个人的受试者编号都相同

1。规范化您的设计。数据库表不是电子表格。