如何解决MySQL View Order By在Select * FROM view WHERE中不起作用
我对在其中条件(其中内部视图的顺序不再起作用)的视图上运行查询存在问题。我已经尽力通过下面的一个简单例子来说明我的情况。
说,我有一个名为users
的表,该表有2列:name
和group
以及使用以下内容创建的视图:
CREATE VIEW view_name AS SELECT name,group FROM users order by name
现在,如果我运行查询SELECT * FROM view_name WHERE group = 'somegroup'
,则不会得到按name
解决方法
除非您使用实例化视图,否则MySQL中的视图仅是在基础表上执行的查询中。而且,在MySQL中,表不是 排序的,因此在视图中放置ORDER BY
子句不会“排序”那里的数据。相反,使用视图时应使用ORDER BY
子句:
CREATE VIEW view_name AS
SELECT name,`group`
FROM users
SELECT *
FROM view_name
WHERE `group` = 'somegroup'
ORDER BY name;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。