簡體   English   中英

使用PHP過濾SQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM