[英]Filtering SQL Queries Using PHP
我一直在尋找一種選擇SQL中某些列(字段)的方法。
我正在嘗試做的是...讓我有一個包含200列數據的表。 我想選擇整行,但僅選擇數據的最后197列。 省略前3列中包含日期和ID的列。
鍵入197個我想從中獲取數據的字段名將非常耗時。 必須有一些更簡便的方法。
有什么幫助或建議可以指引我正確的方向嗎?
如果您使用的是MySQL,則可以查詢架構以按索引獲取列名,因此可以使用迭代的PHP例程來構建查詢,但是在運行真正需要的語句之前,將需要197個select語句。 凌亂而效率低下。
進行SELECT *
,然后忽略前三列似乎更簡單。 如果使用mysql_fetch_assoc()
,則可以輕松獲取所需的列。 看一眼:
如果您使用的是MySQL,請嘗試以下操作:
<?php
$query = "
SHOW COLUMNS FROM `Table`
WHERE `Field` NOT LIKE 'rowtoignore1'
AND `Field` NOT LIKE 'rowtoignore2'
AND `Field` NOT LIKE 'rowtoignore3'
";
$r = mysql_query($query) or die(mysql_error());
$queryfields = "";
while($f = mysql_fetch_assoc($r)) {
$queryfields .= "`{$f['Field']}`,";
}
$queryfields = substr($queryfields,0,strlen($queryfields)-1);
$query = "SELECT {$queryfields} FROM `Table` WHERE xyz";
?>
如果我正在執行此任務,則不會排除前三列。 如果3列包含冗長的text / blob,則可以避免,否則最好提取這200列。
使用此函數mysql_list_fields()獲取與表相對應的字段,並自定義選擇查詢以包括必填字段
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.