我正在使用MySQL的INFORMATION_SCHEMA架构来自动处理表中通用列的某些处理 一个任务是识别数字和非数字列类型以在这两种情况下应用特定操作。 当然我可以为MySQL中的每个单一数据类型定义操作并以这种方式解决我的问题,但我想知道是否使用如下解决方案:
SELECT
NUMERIC_PRECISION
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA='aschema' AND
TABLE_NAME='atable' AND
COLUMN_NAME='acolumn'
当横切表格和列时可能足够好,可以在我感兴趣的两种列之间进行粗略分离。
我的目标是使用TRUE / FALSE标识包含数字数据类型的列
欢迎任何其他想法
退货指出也很受欢迎。
答案 0 :(得分:0)
SELECT [COLUMN_NAME],[DATA_TYPE] FROM INFORMATION_SCHEMA.COLUMNS
WHERE [DATA_TYPE] IN ('int','bigint','smallint','mediumint' 'tinyint','float','numeric')
答案 1 :(得分:0)
我投票给NUMERIC_PRECISION IS NOT NULL
。它包括“位”。要排除“位”,请使用NUMERIC_SCALE IS NOT NULL
。如果你想争论“enum”或“year”是数字,那么请使用像Dudi那样的IN子句。