Mysql 在查询中合并计数
如何使用count获得与LIKE查询匹配的所有记录的计数 我有一个表Mysql 在查询中合并计数,mysql,Mysql,如何使用count获得与LIKE查询匹配的所有记录的计数 我有一个表关键字定义为 +------+-------+-----------------+ | id | photo | keyword | +------+-------+-----------------+ | 3504 | 664 | 2013 | | 3505 | 664 | bl elfring | | 3506 | 664 | indoor track |
关键字定义为
+------+-------+-----------------+
| id | photo | keyword |
+------+-------+-----------------+
| 3504 | 664 | 2013 |
| 3505 | 664 | bl elfring |
| 3506 | 664 | indoor track |
| 3507 | 664 | people |
| 3508 | 664 | 1-5_it_0128.jpg |
+------+-------+-----------------+
和照片
部分定义为
+-----+-------------------+-------------+--------------+------------+
| ID | name | photo_width | photo_height | date_taken |
+-----+-------------------+-------------+--------------+------------+
| 760 | 12-8_mbb_0072.jpg | 425 | 600 | 2012-12-08 |
| 759 | 12-8_mbb_0071.jpg | 459 | 600 | 2012-12-08 |
| 758 | 12-8_mbb_0069.jpg | 457 | 600 | 2012-12-08 |
| 757 | 12-8_mbb_0057.jpg | 395 | 600 | 2012-12-08 |
| 756 | 12-8_mbb_0050.jpg | 800 | 468 | 2012-12-08 |
+-----+-------------------+-------------+--------------+------------+
keywords.photo
引用photos.ID和keywords.keywords
是与该图像关联的IPTC关键字
我想获得与特定关键字关联的所有图像的计数
到目前为止,
SELECT COUNT(keywords.photo) AS keyword_count, keywords.keyword
FROM keywords INNER JOIN photos ON keywords.photo = photos.ID
WHERE keywords.keyword LIKE '%nic%'
返回
+---------------+-------------+
| keyword_count | keyword |
+---------------+-------------+
| 31 | nicole **** |
+---------------+-------------+
+----------------+
| keyword |
+----------------+
| nicole **** |
| nicole ******* |
| bonny **nic* |
| nicole ****** |
+----------------+
但是,
SELECT DISTINCT keyword
FROM keywords
WHERE keyword LIKE '%nic%'
返回
+---------------+-------------+
| keyword_count | keyword |
+---------------+-------------+
| 31 | nicole **** |
+---------------+-------------+
+----------------+
| keyword |
+----------------+
| nicole **** |
| nicole ******* |
| bonny **nic* |
| nicole ****** |
+----------------+
如何获取包含第二次查询结果的计数字段?要按唯一关键字分组:
SELECT COUNT(keywords.photo) AS keyword_count, keywords.keyword
FROM keywords INNER JOIN photos ON keywords.photo = photos.ID
WHERE keywords.keyword LIKE '%nic%'
GROUP BY keywords.keyword
要按唯一关键字分组:
SELECT COUNT(keywords.photo) AS keyword_count, keywords.keyword
FROM keywords INNER JOIN photos ON keywords.photo = photos.ID
WHERE keywords.keyword LIKE '%nic%'
GROUP BY keywords.keyword
如果我理解正确,您想要与给定关键字匹配的照片数量?如果是这种情况,您可以使用以下条款:
这将根据keywords.keyword
列对结果进行分组,总计数为每个结果的使用次数。请注意,以这种方式匹配/分组的“关键字”是唯一的-它不会按部分匹配进行分组(即,“bonny**nic*
不同于nicole******
)。如果我理解正确,您想要匹配给定关键字的照片数量?如果是这种情况,您可以使用以下子句:
这将按关键字对结果进行分组。关键字列包含每个关键字使用的总次数。请注意,以这种方式匹配/分组的“关键字”是唯一的-它不会按部分匹配进行分组(即“bonny**nic*
不同于nicole*****
).为了澄清,在下一次查询中,您的计数结果应该是1,不是吗?为了澄清,在下一次查询中,您的计数结果应该是1,不是吗?谢谢。我只是在名称中加了星号,以保护身份,同时保持匹配。谢谢。我只是在名称中添加了星号,以保护身份,同时保持匹配。