e.g. "Food" column is enum type
我可以计算列#34;食物"?
的索引数量我已经习惯了
SELECT COUNT(food) FROM table WHERE code=1
但它没有用。
答案 0 :(得分:0)
首先你的数据库模式不好,如果说这是一个解决方案:
您可以计算食物中逗号的数量并添加1:
SELECT LENGTH(food) - LENGTH(REPLACE(food, ',', '')) + 1
FROM table WHERE code=1
答案 1 :(得分:0)
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') |
+-------------+-------------+-------+----------------------------------------------------------+
(对于您提出的具体问题,这太过分了。)