mysql - GROUP_CONCAT 中的条件
问题描述
我正在尝试获取标签“汽车”不存在的图像 ID。我尝试对与特定图像 ID 相关的所有对象标签进行分组。
我正在尝试排除存在“汽车”的图像 ID。但不是这个唯一的对象标签“汽车”被排除在组中。
我试过这个 -
SELECT used_car_image_id
, GROUP_CONCAT(DISTINCT object_label ORDER BY object_label ASC SEPARATOR ',')
FROM individual_used_cars_image_label
GROUP BY used_car_image_id
HAVING GROUP_CONCAT(DISTINCT object_label
ORDER BY object_label ASC SEPARATOR ',') != 'car'
和这个 -
SELECT used_car_image_id
, GROUP_CONCAT(DISTINCT object_label ORDER BY object_label ASC SEPARATOR ',')
FROM individual_used_cars_image_label
WHERE object_label !='car'
GROUP BY used_car_image_id
两个查询都给出了 ID,只是排除了对象标签“汽车”。输出应该是没有名为“汽车”的对象标签的图像 ID 行
解决方案
您可以只添加object_label
与每个相关联的值的used_car_image_id
数量相等的计数,car
并使用它来过滤结果。该查询利用了 MySQL 在数字上下文中将布尔表达式视为 1 (true) 或 0 (false) 的事实。
SELECT used_car_image_id
, GROUP_CONCAT(DISTINCT object_label ORDER BY object_label ASC SEPARATOR ',')
FROM individual_used_cars_image_label
GROUP BY used_car_image_id
HAVING SUM(object_label = 'car') = 0
推荐阅读
- python - 适用于 Python3(Windows 和 Linux)的直接 URL SIP 客户端
- javascript - 休眠笔记本电脑后节点应用程序是否工作
- json - 从 XML 到 JSON 的 ConvertRecord 为十进制值提供空值
- nativescript - Nativescript 手势不适用于 vuejs
- amazon-web-services - AWS - WAF:云形成中 kinesis firehose 的日志配置
- mysql - 如何将某些值计算为相同?
- python-3.x - 向新加入的 Discord 成员公开问候
- ca - 我可以在 mitmproxy 上使用来自受信任 CA 的 SSL 证书吗?
- c++ - 随物体在OpenGL中移动而改变旋转点?
- javascript - 带赋值的二元条件运算符