MySQL按名称计算表中的列

时间:2013-08-07 19:29:42

标签: mysql sql

是否可以按名称计算表格中的列数?

例如

SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN LIKE '%name%'
AND table_schema = 'DB_NAME' AND table_name = 'TABLE_NAME'

我有一个表,用于为用户添加的自定义字段向表中添加列,我需要计算添加的列以在while循环中使用结果

3 个答案:

答案 0 :(得分:2)

是的,这是可能的。您有可能需要在COLUMN_NAME中使用WHERE代替COLUMN - 至少,它是MySQL Docs中列出的方式:

SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%name%'
   AND table_schema = 'DB_NAME'
   AND table_name = 'TABLE_NAME'

答案 1 :(得分:0)

在您的查询中 LIKE

LIKE %'name'%放置为LIKE '%name%'

答案 2 :(得分:0)

这样的事情也可以起作用:

SELECT T.name, COUNT(C.name) FROM sys.tables T
INNER JOIN sys.columns C ON C.object_id = T.object_id
WHERE T.name = ('TableName') and C.name like '%name%'
GROUP BY T.name

这可以在数据库中使用。