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

MySQL:选择包含字符串的列名,mysql,Mysql,在我的例子中,我试图从名称中包含特定字符串的列中获取数据。尽管它们是一种选择值的方式,如中所示。列名有类似的方法吗 SELECT COLUMN NAMES LIKE '%PLA%' FROM `TABLENAME` WHERE MONTH=? AND YEAR=? 你试过这个吗 SELECT (SELECT COLUMN NAMES FROM 'TABLENAME') AS CNAME WHERE CNAME LIKE '%PLA%' 选择列名在MySQL中无效。也有类似的事情,比如des

在我的例子中,我试图从名称中包含特定字符串的列中获取数据。尽管它们是一种选择值的方式,如中所示。列名有类似的方法吗

SELECT COLUMN NAMES LIKE '%PLA%' FROM `TABLENAME` WHERE MONTH=? AND YEAR=?
你试过这个吗

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

选择列名
在MySQL中无效。也有类似的事情,比如
descripe[table]
显示[表格]中的列,但不能在其上放置WHERE子句。更好的方法是使用
信息\u模式
虚拟数据库,例如-

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

有关更多信息,请参阅。

您为什么需要它?如果您不知道列名,您将如何处理结果?当您在编写代码时遇到这样的问题时,千万不要忽视一个机会问自己,“如果我试图做的很难……因为我的设计有缺陷,该怎么办?”数据不是列名,列名也不是数据,在设计良好的数据库中,您永远不必编写这样模糊边界的查询。可以使用对信息schema.columns的查询来组合这样的查询,如下所述。感谢您的链接,尽管我喜欢tbl\u名称中的
显示列,如“PLA”
。。。