我想,我的形式在PHP中,包括columntype的結果。 有沒有辦法查詢幷包括列類型?Sql select包括columntype
select * from TableA
+
SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'yourTableName'
我想,我的形式在PHP中,包括columntype的結果。 有沒有辦法查詢幷包括列類型?Sql select包括columntype
select * from TableA
+
SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'yourTableName'
我發現這個。所以現在我可以組合陣列!的
$i = 0;
while ($column = $query->getColumnMeta($i++)) {
print_r($column);
}
可能沒有辦法選擇數據和列類型,因爲列類型通常存儲在單獨的表中(這取決於數據庫)。例如,在MySQL:
查詢柱類型: SELECT COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '表A'
然後將需要解析2個查詢的結果並加入他們使用PHP(我不認爲有一個簡單的方法來使用SQL來做到這一點,因爲你將加入1xN結果與Nx1結果)。
關於列類型的存儲位置更多信息: http://dev.mysql.com/doc/refman/5.7/en/information-schema.html
這些都是本質上的不同的數據集,所以我敢打賭,你需要寫一個可能是相當混亂的存儲程序。
你不解釋爲什麼你需要它,但我懷疑你會沒有問題,結果集(而不是源表)的列類型。這將包括完全相同的信息和計算列的類型。
確切的機制取決於您的DBMS和數據庫庫。你不給有關任何線索,但您的示例代碼看起來像MySQL這樣的選項包括:
如果你要堅持你原來的規範,至少省去一些麻煩,只需運行兩個查詢。
可能重複[SQL語句來獲得列型(http://stackoverflow.com/questions/13405572/sql-statement-to-get-column-type) –
我想如果可能的話結合起來。所以select * from TableA + SELECT COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='yourTableName' – Bas
http://php.net/manual/en/pdostatement.getcolumnmeta.php –