2012-07-02 67 views
1

我可以合并SELECT查询和SHOW语句的结果吗?合并SELECT和SHOW查询

例如 - 需要得到答案的一个表:

select * from INFORMATION_SCHEMA.VIEWS 

show create view `v1` 

谢谢!

回答

1

不,你不能。但是,下面的查询将给出类似的结果:

SELECT *, CONCAT(
"CREATE", 
-- can't get ALGORITHM 
" DEFINER = '", 
    SUBSTRING_INDEX(DEFINER, '@', 1), "'@'", SUBSTRING_INDEX(DEFINER, '@', -1), "'", 
" SQL SECURITY ", SECURITY_TYPE, 
" VIEW `", REPLACE(TABLE_NAME, "`", "``"), "`", 
" AS ", VIEW_DEFINITION, 
IF(CHECK_OPTION <> "NONE", CONCAT(" WITH ", CHECK_OPTION, " CHECK OPTION"), "") 
) AS `CREATE` 
FROM INFORMATION_SCHEMA.VIEWS 
+0

谢谢,这是不错的方法,但遗憾的是 - 是获得有关算法的信息,我的理解它是 - 使用“显示创建视图”的唯一原因唯一办法。 – kaa

+1

@YuriyVelichko:AFAIK,唯一的另一种方法是深入研究MySQL的'.frm'定义文件的视图。有关更多信息,请参见[本博客](http://rpbouman.blogspot.co.uk/2006/05/mysql-view-metadata-original-source.html)。我怀疑在应用程序中解析'SHOW'输出可能会变得更容易。 – eggyal

+0

感谢您的链接!是的 - 解析SHOW输出是更好的方法。 – kaa