【问题标题】:How to query database column names? [closed]如何查询数据库列名? [关闭]
【发布时间】:2020-06-04 16:35:18
【问题描述】:

我有一个包含多个列的表,以一个关键字 link_ 开头。 IE。 link_0_10link_10_20link_20_30 等等。

我只想选择以这些 link_ 关键字开头的列。怎么做?我可以通过 RegEx 查询值,但在列上?我没办法。

P.S.:我不知道可能存在多少列。

【问题讨论】:

  • 这是一个非常糟糕的数据库设计,应该修复。
  • 您所要求的需要动态 SQL,这比常规查询更复杂。基本上,您的问题表明存在设计问题。您应该将每一列存储在单独的行中,并有一列存储值(link_0_10、link_10_20、...)

标签: php mysql regex


【解决方案1】:

只需用你的更改数据库名称和表名并运行此查询

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

【讨论】:

    【解决方案2】:
    SELECT * 
    FROM information_schema.columns 
    WHERE table_name = 'mytable' and column_name like 'link_%'
    

    【讨论】:

    • 虽然这段代码可能会解决问题,但一个好的答案还应该解释代码的什么以及它如何提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2012-12-19
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多