C# 如何获取列中值的数量?
我有一张叫tbl_公司的桌子。它有田野C# 如何获取列中值的数量?,c#,sql,C#,Sql,我有一张叫tbl_公司的桌子。它有田野 id comp_name followers 1 abc 15,23,88,99 2 bbc 1,10,66 在followers字段中,我保存跟踪该公司的员工的id。这个很好用。在每个公司页面的代码隐藏中,我想显示有多少追随者 我想展示abc公司页面中的示例 以下人数为4人 bbc公司页面中的示例我想展示 以下人数为3人 像这样我想显示。我如何才能得到这个计数 谢谢这是TSQL版本 在MySQL
id comp_name followers
1 abc 15,23,88,99
2 bbc 1,10,66
在followers字段中,我保存跟踪该公司的员工的id。这个很好用。在每个公司页面的代码隐藏中,我想显示有多少追随者
我想展示abc公司页面中的示例
以下人数为4人
bbc公司页面中的示例我想展示
以下人数为3人
像这样我想显示。我如何才能得到这个计数
谢谢这是TSQL版本
在MySQL中
数据库字段中以逗号分隔的列表很难处理,而且通常是一个非常糟糕的主意。主要原因是它完全取消了首先使用关系数据库的理由,例如索引、外键和联接 您应该规范化数据库,这样您就可以: tbl_company -------------- id comp_name 1 abc 2 bbc
如果您完全被这个模式所困扰,您应该首先向编写它的人投诉(如果可能的话),然后最简单的解决方案是返回整个该死的字符串,用C计算逗号,当然加1。这不是一个好的数据库设计。使用这种表结构必须三思而后行。这可以进一步规范化。如果在开始时没有正确执行此操作,可能会在以后导致问题,并且无法扩展。因此,如果您可以更改表结构,那就更好了 使用新的表结构,数据如下所示 公司表:
id comp_name
1 abc
2 bbc
公司跟踪表:
company_id follower
1 15
1 23
1 88
1 99
2 1
2 10
2 66
那么您对结果的查询是
SELECT COUNT(company_id)
FROM company_follower
WHERE company_id = @company_id;
提问时,请花时间和精力正确拼写单词。如果您需要遵守此设计,@JW。已经给出了解决方案。然而,我更喜欢在这个阶段采用新的设计。虽然已经插入了数千行,但这不是什么大问题。您可以编写sql语句将这些数据移动到新表中。这只是由于数据库设计不好而出现的一个小问题。您将遇到更新删除问题和可扩展性问题。因此,改变数据库结构是最好的补救办法。参考这就解释了。先生,根据上面我写的查询选择Id,company,CASE当CHAR_LENGTHfollowers>0,然后CHAR_LENGTHfollowers-CHAR_LENGTHREPLACEfollowers,,,,+1,否则0作为company_followers的FollowerCount结束,但它显示以下错误。我使用的sql server 2008错误消息是Msg 195,级别15,状态10,第3行“CHAR_LENGTH”不是可识别的内置函数名。Microsoft sql server 2008错误消息是Msg 195,级别15,状态10,第3行“CHAR_LENGTH”不是可识别的内置函数名。因为您正在执行的查询是针对MySQL的。对于SQL Server,选择Id、company、CASE WHEN LENfollowers>0,然后选择LENfollowers-lenreplacetfollowers、“,”、+1,否则0将作为FollowerCount FROM company_followers结束
SELECT COUNT(1)
FROM company_followers
WHERE company_id = @company_id
id comp_name
1 abc
2 bbc
company_id follower
1 15
1 23
1 88
1 99
2 1
2 10
2 66
SELECT COUNT(company_id)
FROM company_follower
WHERE company_id = @company_id;