2016-05-17 96 views
0

嗨,我有一个像DA6220_12-Apr-2016,IA6010_13-Apr-2016等列的MySQL表。表结构: -如何统计mysql中符合条件的列数?

-------------------------------------------------------------------------------------- 
| DA6010_12-Apr-2016 | DA6010_13-Apr-2016 | IA6010_12-Apr-2016 | DA6220_12-Apr-2016 | 
|------------------------------------------------------------------------------------- 
|                     | 
-------------------------------------------------------------------------------------- 

所以我想什么是计算列数像DA6010为前一particularcode。如果有列DA6010_12-Apr-2016和2016年4月DA6010_13,那么总列数将为2。我知道计数功能可以用来计算列数,但我不知道如何计算,当我们有一个标准或模式参与。有没有办法创建一个触发器来自动计数,当在表中创建任何匹配DA6010的列或者是否有任何其他方式来为它创建一个SQL查询。

如果有人能帮助我解决这个问题,我会非常高兴。

+0

可以使计数自动完成 –

+0

@Atif能否请您提供触发器的方式,因为有很多不同的代码,所以这将是很好用的触发做,而不是运行单个查询这个被触发实现所有代码 –

+0

这里的东西很奇怪,它看起来像OP和@KartikeyVishwakarma是同一个用户....一个袜子傀儡也许? –

回答

1

下面的查询将会给你匹配的列数的标准

SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'your_database' 
AND TABLE_NAME = 'your_table' 
AND COLUMN_NAME LIKE 'DA6010%'; 
+0

Atif - 您的解决方案可以正常工作,但如果您可以提供触发方式,我将非常感激。 –

+0

就我的研究而言,触发器在这种情况下不起作用 – Atif

0

是的,它可以通过SQL查询来完成。以下sql查询将计算像DA6010这样的列数并返回一个名为total的列。

SELECT COUNT(*) as total FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'database_name' 
AND TABLE_NAME = 'table_name' 
AND COLUMN_NAME LIKE 'DA6010%';