请问ruby中如何获取到一条sql中涉及到的所有表
比如sql是 select * from users
结果是 users
简单的用正则可以匹配,但是复杂的好像匹配不了
在mysql层面有啥语句会查询得到吗
看了explain,里面好像没有列举出涉及到的表名
java的话可以看看jsqlparsr,这个是mybatisPlus在使用的,将sql解析成AST抽象语法树,然后你就可以拿到你想要拿到的任何部分
https://github.com/greenlion/PHP-SQL-Parser 可以用这个解析
SELECT a, b, c
FROM some_table an_alias
JOIN `another` AS `another table` USING(id)
WHERE d > 5
输出结果:
Array
(
[SELECT] => Array
(
[0] => Array
(
[expr_type] => colref
[base_expr] => a
[sub_tree] =>
)
[1] => Array
(
[expr_type] => colref
[base_expr] => b
[sub_tree] =>
)
[2] => Array
(
[expr_type] => colref
[base_expr] => c
[sub_tree] =>
)
)
[FROM] => Array
(
[0] => Array
(
[expr_type] => table
[table] => some_table
[alias] => Array
(
[as] =>
[name] => an_alias
)
[join_type] =>
[ref_type] =>
[ref_clause] =>
[base_expr] => some_table
[sub_tree] =>
)
)
[JOIN] => Array
(
[0] => Array
(
[expr_type] => table
[table] => another
[alias] => Array
(
[as] => AS
[name] => another table
)
[join_type] => JOIN
[ref_type] => USING
[ref_clause] => Array
(
[0] => Array
(
[expr_type] => colref
[base_expr] => id
[sub_tree] =>
)
)
[base_expr] => JOIN `another` AS `another table` USING(id)
[sub_tree] =>
)
)
[WHERE] => Array
(
[0] => Array
(
[expr_type] => colref
[base_expr] => d
[sub_tree] =>
)
[1] => Array
(
[expr_type] => operator
[base_expr] => >
[sub_tree] =>
)
[2] => Array
(
[expr_type] => const
[base_expr] => 5
[sub_tree] =>
)
)
)
我有三个表,product、category和product_to_category。Product具有主键product_id、category_id和PRODUCT_TO_CategoryP2C_ID。product_to_category使用产品各自的ID以多对多的关系将产品链接到类别。 基本上,我想写一个查询,从类别表中不存在的类别中选择所有产品。这是由于产品正在从另一个数据库迁移。 我有
问题内容: 我需要在python中编写一个正则表达式以从Tweets中提取提及。 我的尝试: 对于@mickey之类的任何提及,它都可以正常工作,但是,在带有@mickey_mouse之类的下划线的提及中,它仅提取@mickey。 如何修改正则表达式以使其在两种情况下均能正常工作? 谢谢 问题答案: 在下一组添加下划线,如下所示: Regex101演示 另外,Twitter Handle规则 允许
智能机器人可以做到的事情可以很复杂:文字、语音、视频识别与合成;自然语言理解、人机对话;以及驱动硬件设备形成的“机器”人。作为一个只有技术和时间而没有金钱的IT人士,我仅做自然语言和人工智能相关的内容,不涉及硬件,也不涉及不擅长的多媒体识别和合成。所以索性就做一个可以和你说话,帮你解决问题的聊天机器人吧。 聊天机器人涉及到的知识主要是自然语言处理,当然这包括了:语言分析和理解、语言生成、机器学习、
本文向大家介绍SQL Server 提取数字、提取英文、提取中文的sql语句,包括了SQL Server 提取数字、提取英文、提取中文的sql语句的使用技巧和注意事项,需要的朋友参考一下
“提取 SQL”让你从备份文件中提取 SQL 到一个 SQL 文件。 提取数据库或模式中的一个备份文件 打开一个数据库或模式。 点击“备份”并选择一个现有的备份文件。 在对象工具栏点击“提取 SQL”。 选择提取 SQL 选项并点击“提取”。 为 SQL 文件选择一个路径。 提取任意位置的备份文件 打开你的任何一个数据库或模式。 点击“备份”。 右击对象选项卡的任意位置并选择“提取 SQL 从”。
“提取 SQL”让你从备份文件中提取 SQL 到一个 SQL 文件。 提取数据库或模式中的一个备份文件 打开一个数据库或模式。 点击“备份”并选择一个现有的备份文件。 在对象工具栏点击 。 选择提取 SQL 选项并点击“开始”。 为 SQL 文件选择一个路径。 提取任意位置的备份文件 打开你的任何一个数据库或模式。 点击“备份”。 按住 Control 键并点按对象选项卡的任意位置,然后选择“提取