gpt4 book ai didi

php - 计算 Mysql 表上的相同值

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:18 25 4
gpt4 key购买 nike

我想根据单个字段统计表中的最大值。

我的表上有一个 image_count 字段;这是计算不同的图像而不是具有相同图像的不同缩略图。

例如,我有一个名为 stack.jpg 的图像,并且有三个不同大小的缩略图。

所以我必须将调整大小的图像保存到具有相同 image_count 的数据库。

让我们给那个文件一个计数:1。

当我再次上传另一张具有三种缩略图尺寸的图片时;上传和调整大小的图像必须有 image_count: 2。

所以:

ID | Thumbnail |        Image         | count |
-----------------------------------------------
1 | Small | stack_small.jpg | 1 |
2 | Medium | stack_medium.jpg | 1 |
3 | Big | stack_big.jpg | 1 |
4 | Small | overflw_small.jpg | 2 |
5 | Medium | overflw_medium.jpg | 2 |
6 | Big | overflw_big.jpg | 2 |
-----------------------------------------------

当我想向数据库添加新图像时,计数字段必须为“3”。不是 7。

我认为我必须按计数分组,但我将 symfony2 与学说一起使用,当我尝试使用计数获取 singleScalarResult 时,它抛出异常。

我的代码:

public function countImages($entity_id, $gallery_id)
{
$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();

$count = $qb
->select('COUNT(i)')
->from('CSGalleryBundle:GalleryImage', 'i')
->leftJoin('CSGalleryBundle:Gallery', 'g', 'WITH', 'g.id = i.gallery_id')
->where(
$qb->expr()->eq('i.foreign_key', $entity_id),
$qb->expr()->eq('g.id', $gallery_id)
)
->groupBy('i.image_count')
->setMaxResults(1)
->getQuery()
->getSingleScalarResult();

return $count + 1;
}

错误:

enter image description here

这里有什么问题?我该如何解决?有没有更好的方法呢?

谢谢!

最佳答案

你是对的。您必须使用 Doctrine 方式来提高性能。您可以使用此查询:

$count = $qb
->select('MAX(i.image_count)')
->from('CSGalleryBundle:GalleryImage', 'i')
->leftJoin('CSGalleryBundle:Gallery', 'g', 'WITH', 'g.id = i.gallery_id')
->where(
$qb->expr()->eq('i.foreign_key', $entity_id),
$qb->expr()->eq('g.id', $gallery_id)
)
->getQuery()
->getSingleScalarResult();

return $count === null ? 1 : $count + 1;

关于php - 计算 Mysql 表上的相同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com