7

我正在尝试从名称中包含特定字符串的列中获取数据,在我的情况下它是PLA。尽管它们是一种选择值在MySQL 查询 String contains 中的位置的方法。列名有类似的方法吗?

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

2 回答 2

16

SELECT COLUMN NAMES在 MySQL 中无效。有类似的东西,比如DESCRIBE [table];or 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

于 2013-11-08T04:15:41.153 回答
-1

你试过这个吗?

SELECT (SELECT COLUMN NAMES FROM 'TABLENAME') AS CNAME WHERE CNAME LIKE '%PLA%' 
于 2013-11-08T04:02:09.393 回答