我有一个程序,允许用户对多个数据库运行自定义查询。该程序为MySQL使用.net连接器,它创建一个连接、命令和dataAdapter对象。
目标是获取查询所访问的所有表/列。我知道我可以解析查询来获得这些,但我认为一定有一个更简单的方法使用连接器。
我也会对使用某种查询的解决方案感兴趣?解释可不行
的例子:表1
col4test4
下列查询中使用的列是什么?
SELECT COUNT(*) FROM mytable WHERE userid = 123;
SELECT col1 + col2 AS myalias FROM mytable
SELECT CURDATE();
SELECT a, b, c FROM table1
UNION
SELECT x, y, z FROM table2;
SELECT EXISTS ( SELECT * FROM mytable WHERE user_id = 123);
WITH RECURSIVE cte ( ... ) SELECT * FROM cte;
你懂的。SQL是一种强大的语言,有很多情况会使映射源列变得困难。