mysql中的列名
我想从没有特定值的mysql表中获取列名mysql中的列名,mysql,mysqli,Mysql,Mysqli,我想从没有特定值的mysql表中获取列名 MyTable: ------------------------------------------ | col1 | col2 | col3 | col4 | col5 | | | | | | | | 12 | - | 50 | - | 10 | | | | | | | -----
MyTable:
------------------------------------------
| col1 | col2 | col3 | col4 | col5 |
| | | | | |
| 12 | - | 50 | - | 10 |
| | | | | |
------------------------------------------
我想要没有值'-'的列名
Output :
-----------------
| col1 | 12 |
| col3 | 15 |
| col5 | 10 |
-----------------
对此有疑问吗
想要像这样的输出:
SELECT coloumn_names FROM table_name WHERE column_value != '-' AND other_col_value='some_value'
如果某些列值是唯一字段,请不要将代码与数据混合。
SELECT "col1" colName, col1 colValue
FROM MyTable
WHERE col1 != "-" AND col6 = some_number
UNION
SELECT "col2", col2
FROM MyTable
WHERE col2 != "-" AND col6 = some_number
UNION
SELECT "col3", col3
FROM MyTable
WHERE col3 != "-" AND col6 = some_number
UNION
...
当你想选择一个列名(它是程序的一部分)作为一个数据时,你就知道你做错了
您需要另一个表结构来完成此操作。它必须是垂直的,而不是水平的 去吧
id | key | value |
1 col1 12
1 col2 -
1 col3 50
1 col4 -
1 col5 10
其中id
-旧表中的标识符
select key from old join new on id where value='-' and col6='whatever'
有关更多详细信息,请参见
希望它有帮助您的表只有一行?@Barmar否,但还有另一个独特的列,称为col6,我将使用where子句对其进行过滤,如where col6=some_number@Barmar一个糟糕的剪贴。。。链接被删除。谢谢你的报道。@PaoloGibellini那还是相反的。大多数透视问题都希望将行转换为列。他想将列转换成行。谢谢你的建议,但我的表包含近20列,有数千条记录,现在如果我尝试转换成表,正如你所说的,它将不起作用。更重要的是,这是唯一的方法。这只是一个想法。我提到了链接以了解更多细节。这比在那里创建一个seprate表和散列更容易。然后再次连接以获取名称。我的想法是获取列名,然后循环它们是否为空。
SHOW COLUMNS FROM `tablename` where 'condition'