一个表在其中存储查询,我需要从这些查询中提取表名。
表:主要
ID | 查询文本 |
---|---|
1 | select a.record_id, a.name, b.person FROM database.atable a join database.btable b on b.id= a.id; |
2 | select c.record_id, c.name, d.person FROM database.ctable c join database.dtable d on c.id=d.id; |
预期成绩:
database.atable
database.ctable
SELECT SUBSTR(querytext, position('database.' in querytext), 30) FROM main;
这几乎可以工作,但我不知道表名可以有多长或多短。如果超过 30,则会截断结果。如果更短,它可以包括查询的其他部分。我正在阅读 strtok 并考虑使用它来到达名称后的空格以停止,但不能完全让它工作。