我有1张表,我想在我的php文件中使用alter函数对视图列进行重新排序,基本上应该在大多数视图中将其重新排序为最小视图顺序。并希望它以相同的顺序显示已更改,但它正在显示按照ID的顺序。
现在在这里我不想使用ORDER BY视图DESC,这就是为什么我使用alter function。因为我已经在我的php文件中使用ORDER BY名称ASC。
TABLE =>用户
id | name | views
1 | user1 | 700
2 | user3 | 900
3 | user1 | 200
4 | user4 | 900
5 | user4 | 800
6 | user4 | 800
7 | user3 | 900
8 | user4 | 900
9 | user5 | 100
10 | user5 | 100
// this is random table..//
最后,我正在寻找按表排序的视图中的数据,那么我将从表中选择数据,如果名称相同,则它应按视图的顺序排序,以便得到这样的ouptup:
id | name | views
1 | user1 | 900
2 | user1 | 700
3 | user1 | 200
4 | user3 | 900
5 | user4 | 900
6 | user4 | 800
7 | user5 | 900
8 | user5 | 900
9 | user5 | 300
10 | user5 | 100
答案 0 :(得分:0)
SQL表是无序集。它们没有内在顺序,因此您永远不应依赖未显式声明order by
子句的查询返回的任何顺序。就您而言,似乎您需要在顺序中包含两个元素-首先是名称,然后是视图:
SELECT *
FROM mytable
ORDER BY name ASC, views DESC