MySQL查询排序


MySQL query sorting

我正在尝试根据用户在行下的字段中设置的数据对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表中添加一列,指示序号值,然后通过连接到指定表进行排序。