【问题标题】:How to find the similar column names from a database table?如何从数据库表中找到相似的列名?
【发布时间】:2012-12-26 21:26:38
【问题描述】:

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

例如

一个数据库表

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%' FROM sheet1;

它显示了这么短的东西

1 LIKE '%1%'
         1
         1

【问题讨论】:

  • 如果你想选择列,那你就错了。
  • 您能解释一下您要达到的目标吗?表格设计最有可能具有优化潜力
  • 我想根据相似的列名检索所有列值。

标签: mysql sql select information-schema


【解决方案1】:

文档查找here

SHOW COLUMNS FROM tbl_name FROM db_name
LIKE '1%'

获取相应列的内容:

SQL Fiddle

【讨论】:

  • Thankyou @rkp... 但是我应该如何列出相应列的内容?
【解决方案2】:

试试这个:

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;

【讨论】:

    【解决方案3】:

    这可能对你有用

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

    information_schema 是包含有关所有数据库的元数据的数据库,因此当您需要此类数据时,只需对其进行查询

    【讨论】:

      猜你喜欢
      • 2016-09-01
      • 2023-01-13
      • 2010-10-06
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      相关资源
      最近更新 更多