【问题标题】:Can I count how many indexes of enum type in MySQL?我可以计算MySQL中有多少枚举类型的索引吗?
【发布时间】:2018-02-19 09:36:29
【问题描述】:

e.g. "Food" column is enum type

我能数一下“food”列有多少个索引吗?

我用过 SELECT COUNT(food) FROM table WHERE code=1

但它不起作用。

【问题讨论】:

标签: mysql indexing enums


【解决方案1】:

首先你的数据库架构不好,这里说的是解决方案:

你可以数食物中逗号的个数加1:

SELECT LENGTH(food) - LENGTH(REPLACE(food, ',', '')) + 1
FROM table WHERE code=1

【讨论】:

    【解决方案2】:
    SELECT COUNT(DISTINCT food)
        FROM table
    

    这将给出food使用 值的数量。如果你有一些未使用的值,那么你需要这样的东西:

    SELECT table_name, column_name,
           LENGTH(column_type) - LENGTH(REPLACE(column_type, ',', '')) + 1 AS items,
           column_type
        FROM information_schema.columns
        WHERE table_schema = 'pics'
          AND data_type = 'enum';
    
    +-------------+-------------+-------+----------------------------------------------------------+
    | table_name  | column_name | items | column_type                                              |
    +-------------+-------------+-------+----------------------------------------------------------+
    | collections | index_cat   |     7 | enum('unk','wpc','family','trip','hike','music','other') |
    | pics        | skip        |     2 | enum('','skip')                                          |
    | pics        | prec        |     5 | enum('unk','click','est','manual','adj')                 |
    | picsav      | prec        |     4 | enum('unk','click','est','manual')                       |
    | picsav2     | prec        |     4 | enum('unk','click','est','manual')                       |
    +-------------+-------------+-------+----------------------------------------------------------+
    

    (对于您提出的具体问题而言,这太过分了。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-07
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      相关资源
      最近更新 更多