我是MYSQL的初学者。 我需要检索值为“TRUE”的列的COLUMN NAMES? 我找到了这段代码,但我不明白如何使用它:
SELECT `COLUMN_NAME`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_NAME`='tablename'
提前致谢
答案 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 tablename
(MySQL Manual)
您想如何确定列的值是否为真?您的表中可能有两行,其中一列的值为TRUE和FALSE(一行为TRUE,另一行为FALSE)
使用PHP中的一行
如果表中只有一行,请执行SHOW COLUMNS FROM tablename
对结果执行fetch_array
,然后预设并保存值为TRUE的键。
如果您尝试存储类似配置的内容,请使用键值表并使用where子句进行查询,这样会更有效。