是否可以按名称计算表中的列数?
例如
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN LIKE '%name%'
AND table_schema = 'DB_NAME' AND table_name = 'TABLE_NAME'
我有一个表,它为用户添加的自定义字段添加列到表中,我需要计算添加的列以在 while 循环中使用结果
是的,这是可能的。您有可能需要使用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'
在您的查询LIKE
放置LIKE %'name'%
为LIKE '%name%'
像这样的东西也可以工作:
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
这将在数据库中工作。