【问题标题】:How can I find all columns where the column name length is greater than 5?如何找到列名长度大于 5 的所有列?
【发布时间】:2012-03-04 05:55:45
【问题描述】:

我有一个名为 bbs 的数据库,它有 37 个表。 我要查找这些表中列名长度大于 5 的所有列!

mysql> show tables;
+---------------------+
| Tables_in_rails_bb  |
+---------------------+
| articles            |
| articles_categories |
| bookmarks           |
| categories          |
| comments            |
| drafts              |
| extension_groups    |
| extensions          |
| forum_tracks        |
| forums              |
| icon_items          |
| icons               |
| levels              |
| management_groups   |
| management_logs     |
| message_folders     |
| message_tos         |
| messages            |
| moderators          |
| posts               |
| replies             |
| reports             |
| roles               |
| roles_users         |
| schema_migrations   |
| sessions            |
| smiles              |
| subscribes          |
| system_configs      |
| topic_tracks        |
| topics              |
| upload_files        |
| users               |
| users_forums        |
| users_topics        |
| warnings            |
| word_replacements   |
+---------------------+
37 rows in set (0.25 sec)

sql怎么写?

【问题讨论】:

  • 在下面尝试我的解决方案。希望这就是您正在寻找的。​​span>
  • 是的,它是一个 rails bbs 应用程序!我想为某些列添加前缀,但我应该检查哪种方式最好?更改数据库或更改我的代码。谢谢你的回复^_^

标签: mysql sql schema


【解决方案1】:
SELECT *
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE CHAR_LENGTH(COLUMN_NAME) > 5
        AND TABLE_SCHEMA='YourDatabase';

未经测试!找到this question 并编辑查询。这样的事情至少应该让你开始:)

【讨论】:

    【解决方案2】:

    您需要在此处更改的唯一内容是您的数据库名称(Table_NameColumn_Name 是固定的)。试试这个:

    SELECT Table_Name, Column_Name 
    FROM information_schema.columns
    WHERE table_schema = 'databaseName' -- <= Database Name Here
    HAVING CHAR_LENGTH(COLUMN_NAME) > 5
    ORDER BY Table_Name, Column_Name
    

    或者您也可以选择所有字段

    SELECT * 
    FROM information_schema.columns
    WHERE table_schema = 'databaseName' -- <= Database Name Here
    HAVING CHAR_LENGTH(COLUMN_NAME) > 5
    ORDER BY Table_Name, Column_Name
    

    【讨论】:

      【解决方案3】:

      只需查询information_schema数据库:

      mysql> connect information_schema;
      mysql> select table_name, column_name from columns where table_schema = 'bbs' and char_length(column_name) > 5;
      

      考虑到 char_length(str) 将给出 str 的字符数量,而 length(str) 将得出 str 的字节大小。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-06
        • 2011-06-20
        • 1970-01-01
        相关资源
        最近更新 更多