mysql中的列名

mysql中的列名,mysql,mysqli,Mysql,Mysqli,我想从没有特定值的mysql表中获取列名 MyTable: ------------------------------------------ | col1 | col2 | col3 | col4 | col5 | | | | | | | | 12 | - | 50 | - | 10 | | | | | | | -----

我想从没有特定值的mysql表中获取列名

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'