如何从数据库表中查找类似的列名?

时间:2013-01-12 11:04:07

标签: mysql sql select information-schema

如何从数据库表中找到类似的列名?

例如

数据库表

1_1  1_2  1_3  5_6  67
    |    |    |    |   
    |    |    |    |

因此,1_1,1_2,1_3,5_6和67是数据库表的列名。我想只检索以1(1_1,1_2和1_3)开头的列名。我尝试了sql查询,但它工作..

SELECT 1 LIKE'%1%'来自sheet1;

它显示了这个简短的内容

1 LIKE '%1%'
         1
         1

3 个答案:

答案 0 :(得分:0)

文档查找here

SHOW COLUMNS FROM tbl_name FROM db_name
LIKE '1%'

获取相应列的内容:

SQL Fiddle

答案 1 :(得分:0)

这可能对你有用

SELECT COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='table' AND TABLE_SCHEMA='database_name'

information_schema是包含有关所有数据库的元数据的数据库,所以当您想要这种数据时,只需在其上启动查询

答案 2 :(得分:0)

试试这个:

SELECT GROUP_CONCAT(COLUMN_NAME) INTO @s 
FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'tableName' AND 
      COLUMN_NAME LIKE '1%';

SET @sql = CONCAT('SELECT ', @s, ' FROM tableName');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;