我正在尝试从名称中包含特定字符串的列中获取数据,例如 PLA 。虽然它们是一种选择值的方式,如MySQL query String contains中所示。列名称是否有类似的方法?
SELECT COLUMN NAMES LIKE '%PLA%' FROM `TABLENAME` WHERE MONTH=? AND YEAR=?
答案 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%'