php - 如何计算选定列在查询结果中有多少个唯一字段

标签 php mysql

我有一个获取网络表单提交的查询。下面是查询及其返回的内容。我需要它返回重复 sid 的计数,以获取满足我的两个数据变量的所有提交的计数。意思是,我希望它返回 4,有什么建议吗?

SELECT sid, data
FROM webform_submitted_data
INNER JOIN node
ON webform_submitted_data.nid=node.nid
WHERE webform_submitted_data.nid= 15 AND webform_submitted_data.cid = 6 AND webform_submitted_data.data = 'male' OR webform_submitted_data.data = 'yes' AND webform_submitted_data.nid= 15 AND webform_submitted_data.cid= 15;


sid | Data
-----------
86  | male
86  | yes
87  | yes
88  | yes
90  | yes
91  | male
91  | yes
92  | male
92  | yes
93  | male
93  | yes
94  | yes

最佳答案

您可以按 sid 分组并统计您的数据:

SELECT sid, COUNT(*) as nb_sid
FROM webform_submitted_data
INNER JOIN node
ON webform_submitted_data.nid=node.nid
WHERE webform_submitted_data.nid= 15
    AND webform_submitted_data.cid = 6 
    AND webform_submitted_data.data = 'male' OR webform_submitted_data.data = 'yes'
    AND webform_submitted_data.nid= 15
    AND webform_submitted_data.cid= 15
GROUP BY sid;

如果需要,您可以在 where 子句中过滤 nb_sid。 如果确实需要,您还可以使用 group_concat 获取数据中的值。

关于php - 如何计算选定列在查询结果中有多少个唯一字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473925/

相关文章:

mysql - 使用 WHERE time BETWEEN times 和 COUNT(column)>1 更新表

mysql - 使用同一表的另一列的值分组插入到列中

java - 无法删除或更新双向关系中的父行

php - 我应该如何获取 Drupal 7 自定义节点的特定字段中包含的值?

php - 正则表达式查找文本中包含特殊字符的字符串

php - 在html表格中显示来自mysql的数据

java - Spring 和 Tomcat : Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

php - Doctrine 一对多自引用不起作用

php - 避免PHP执行时间限制

MySQL - 从服务器抓取 blob 文件