在SELECT * FROM view_table
中,结果总是
-----------------------
|| id || author ||
-----------------------
|| 1 || a || <--
|| 1 || c || <--
|| 1 || b || <--
|| 2 || d ||
|| 3 || e ||
但是当 SELECT * FROM view_table WHERE id=1
结果是
-----------------------
|| id || author ||
-----------------------
|| 1 || a ||
|| 1 || b ||
|| 1 || c ||
或者
-----------------------
|| id || author ||
-----------------------
|| 1 || b ||
|| 1 || c ||
|| 1 || a ||
或者
-----------------------
|| id || author ||
-----------------------
|| 1 || a ||
|| 1 || c ||
|| 1 || b ||
或者
..
我想SELECT * FROM view_table WHERE id=1
并以与SELECT * FROM view_table
相同的顺序获取结果。如何解决
谢谢。
最佳答案
除非您使用 ORDER BY
子句,否则永远无法保证结果的顺序。你想如何订购,由你决定。
例如,
SELECT *
FROM view_table
WHERE id = 1
ORDER BY author
这将根据作者姓名对其进行排序(如果您使用 ORDER BY author DESC
,则从 A 到 Z,或者从 Z 到 A)。
或者,您可以添加一个 Created
列,然后按该列排序,该列包含创建时的时间戳。这可以模仿您想要保留的顺序。
关于mysql - "SELECT * FROM view_table WHERE cause"=> 但结果总是重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56164113/