MySQL:选择包含字符串的列名

时间:2013-11-08 03:58:22

标签: mysql

我正在尝试从名称中包含特定字符串的列中获取数据,例如 PLA 。虽然它们是一种选择值的方式,如MySQL query String contains中所示。列名称是否有类似的方法?

SELECT COLUMN NAMES LIKE '%PLA%' FROM `TABLENAME` WHERE MONTH=? AND YEAR=?

2 个答案:

答案 0 :(得分:12)

SELECT COLUMN NAMES在MySQL中无效。有类似的事情,如DESCRIBE [table];SHOW COLUMNS FROM [table];,但你不能把WHERE子句放在它们上面。更好的是使用INFORMATION_SCHEMA虚拟数据库,例如 -

SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS`
 WHERE `TABLE_SCHEMA`='[database name]' and `TABLE_NAME`='[table name]'
 AND   `COLUMN_NAME` LIKE '%PLA%'

有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.6/en/columns-table.html

答案 1 :(得分:-1)

你试过这个吗?

SELECT (SELECT COLUMN NAMES FROM 'TABLENAME') AS CNAME WHERE CNAME LIKE '%PLA%'