mysql - 从表中检索特定的列名

时间:2014-07-22 11:51:10

标签: php mysql

我是MYSQL的初学者。 我需要检索值为“TRUE”的列的COLUMN NAMES? 我找到了这段代码,但我不明白如何使用它:

 SELECT `COLUMN_NAME` 
 FROM `INFORMATION_SCHEMA`.`COLUMNS` 
 WHERE `TABLE_NAME`='tablename'

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为这会对你有用MySQL query to get column names?

通过以下内容,您将获得有关特定列的所有信息

SELECT * 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename';
    AND `COLUMN_NAME` = 'namecolumn'

如果你想要一行中值为true的所有列的名称,你可以使用foreach,如果你使用php并在数组中写入所有键,例如值为true

$list = array();
foreach($rows as $key => $value)
{
   if($value === true) $list[] = $key;
}

答案 1 :(得分:0)

此代码显示特定表中的所有列名称,架构INFORMATION_SCHEMA存储有关在数据库服务器上创建的项目的信息(模式,表,列等)。

上面的陈述将向您显示来自tablename的alle列,还有一个更简单的语法来执行此操作SHOW COLUMNS FROM tablenameMySQL Manual

您想如何确定列的值是否为真?您的表中可能有两行,其中一列的值为TRUE和FALSE(一行为TRUE,另一行为FALSE)

使用PHP中的一行

如果表中只有一行,请执行SHOW COLUMNS FROM tablename对结果执行fetch_array,然后预设并保存值为TRUE的键。

如果您尝试存储类似配置的内容,请使用键值表并使用where子句进行查询,这样会更有效。