获取MySQL Query中使用的表的所有名称的方法

时间:2011-11-17 14:07:23

标签: php mysql

有没有办法从查询字符串中获取所有使用的MySQL表名?

4 个答案:

答案 0 :(得分:3)

使用explain可以为您提供列出表的结果集,但是您不能使用表别名(它返回别名)并且我没有使用所有类型的查询对其进行测试,所以我不知道如果它是100%可靠的。

explain select * from table1 
inner join table2 on table2.fk_id = table1.pk_id;

编辑:我应该说,“100%可靠为您的目的。”

答案 1 :(得分:2)

使用这个mysql语法

SHOW [FULL] TABLES [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

例如:

SHOW TABLES from _TABLE_NAME_

答案 2 :(得分:1)

您可以通过在查询前面加上explain:

来获取查询字符串中所有已使用的表
EXPLAIN SELECT ..... FROM ... JOIN .....

答案 3 :(得分:0)

mysql_field_table(),补充mysql_field_name()

它们是位置函数,所以如果你想要结果集中第3个字段的表,你需要

$select = "SELECT A.x, B.y, C.z FROM A,B,C ...";

$table = mysql_field_table($result, 2); // 0-based positions, returns C