2011-11-17 38 views
1

有什麼辦法從查詢字符串中獲取所有使用的MySQL表名?獲取MySQL查詢中使用的所有表名的方法

+0

所有*表*對於查詢中引用的返回的列或所有*表*有一個區別。 –

+0

我想要從查詢字符串**(php) – PiKey

+0

中找到所有表格**因此,如果您有'select ... from X,Y,Z',您希望返回'「X」,「Y」 ,「Z」? –

回答

3

使用explain可以爲您提供列出表格的結果集,但是您不能使用表格al iases(它返回別名),我沒有測試過所有類型的查詢,所以我不知道它是否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_ 
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 
+0

沒問題,但是它只是在執行查詢後返回表 – PiKey

相關問題