Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何查询数据库列名?_Php_Mysql_Regex - Fatal编程技术网

Php 如何查询数据库列名?

Php 如何查询数据库列名?,php,mysql,regex,Php,Mysql,Regex,我有一个表,它有多个列,以一个关键字link\uu开头。即link\u0\u10,link\u10\u20,link\u20\u30等等 我只想选择以这些链接关键字开头的列。怎么做?我可以通过正则表达式查询值,但查询列?我没能做到 p.S.:我事先不知道会出现多少列。选择* 从信息_schema.columns 其中,table_name='mytable'和column_name(如'link_%' 只需更改数据库名和表名,然后运行此查询 SELECT `COLUMN_NAME` FROM

我有一个表,它有多个列,以一个关键字
link\uu
开头。即
link\u0\u10
link\u10\u20
link\u20\u30
等等

我只想选择以这些
链接
关键字开头的列。怎么做?我可以通过正则表达式查询值,但查询列?我没能做到

p.S.:我事先不知道会出现多少列。

选择*
从信息_schema.columns
其中,table_name='mytable'和column_name(如'link_%'

只需更改数据库名和表名,然后运行此查询

SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='database_name' 
AND `TABLE_NAME`='table_name' and  COLUMN_NAME like 'link_%'

这是一个非常糟糕的数据库设计,应该加以修复。您需要的是动态SQL,这比常规查询更复杂。基本上,您的问题表明存在设计问题。您应该将每一列存储在一个单独的行上,并使用一个存储值的列(link_0_10,link_10_20,…)虽然此代码可能会解决此问题,但一个好的答案还应该解释代码的作用以及它的帮助方式。