使用PHP过滤SQL查询

时间:2012-02-06 07:14:06

标签: php sql select

我一直在搜索SQL中选择某些列(字段)的方法。

我想要做的就是这个...让我说我有一个包含200列数据的表。我想选择整行,但只选择最后197列数据。省略前3列有日期和ID的列。

输入我想要数据的197个字段名称将非常耗时。必须有一些更简单的方法。

有任何帮助或建议指出我正确的方向吗?

3 个答案:

答案 0 :(得分:0)

如果您正在使用MySQL,您可以查询模式以通过索引获取列名,因此您可以使用迭代PHP例程来构建查询,但是在您运行真正的查询之前需要197个select语句想。凌乱而且效率低下。

执行SELECT *然后忽略前三列似乎更简单。如果您使用mysql_fetch_assoc(),则可以轻松获得所需的列。看看:

答案 1 :(得分:0)

如果您使用的是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";
?>

答案 2 :(得分:0)

如果我正在执行此任务,我不会排除前3列。如果3列包含冗长的text / blob,那么你可以避免,否则更好地获取那200列。

使用此函数mysql_list_fields()获取与表对应的字段,并自定义选择查询以包含必填字段