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

nor*_*dum 4 mysql

我试图从他们的名字中包含特定字符串的列中获取数据,在我的情况下它是PLA.虽然它们是一种选择值的方式,如MySQL查询字符串所包含的那样.列名是否有类似的方法?

SELECT COLUMN NAMES LIKE '%PLA%' FROM `TABLENAME` WHERE MONTH=? AND YEAR=?
Run Code Online (Sandbox Code Playgroud)

小智 13

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%'
Run Code Online (Sandbox Code Playgroud)

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