我正在尝试根据用户在行下的字段中设置的数据对MySQL查询的结果进行排序。
我有一张名为"分配"的表,设置如下:
id user_id item_id
-- ------- -------
1 1 1
2 1 23
3 1 304
我希望能够根据用户表订购这些结果,用户表将像这样存储:
3,1,2
有什么想法吗?
您可以使用FIELD选项:
SELECT * FROM assigned ORDER BY FIELD(id,3,1,2)
其中id是要为其排序的表的字段,下面是已排序的id。
您应该使用关键字ORDER BY
来按照您想要的方式排序结果:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
在你的情况下,你会
ORDER BY user_id
如果它不能回答您的问题,请更准确地告诉我们您想要什么。
最大
您永远不应该假设关系数据库中表中的行具有任何隐式排序。即,虽然今天"SELECT*FROM users"可能会按照您想要的顺序返回数据,但明天可能会有所不同。
这同样适用于列,尽管MySQL与其他关系数据库相比并不常见,因为它确实允许显式声明列顺序。
在users表中添加一列,指示序号值,然后通过连接到指定表进行排序。