我一直在搜索SQL中选择某些列(字段)的方法。
我想要做的就是这个...让我说我有一个包含200列数据的表。我想选择整行,但只选择最后197列数据。省略前3列有日期和ID的列。
输入我想要数据的197个字段名称将非常耗时。必须有一些更简单的方法。
有任何帮助或建议指出我正确的方向吗?
答案 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()获取与表对应的字段,并自定义选择查询以包含必填字段