mysql - 从 MySQL 表中获取记录时将结果设为 NULL
问题描述
我正在尝试根据多个 IDS 获取记录并使用 PHP 和 MySQL 计算最小值。我正在解释下面的查询。
SELECT MIN(min_price) AS base_price,entity_id
FROM catalog_product_index_price
WHERE entity_id IN
('31439,31440,31441,31442,31443,31444,31445,31446,31447,31448,31469,31470,31471,
31472,31473')
在这里,我试图min_price
根据这些倍数计算列的最小值entity_id
。但在我的情况下,其中一些entity_id
类似的表中31439,31440,31441
没有任何记录,catalog_product_index_price
因此最终结果是NULL
针对两者的base_price and entity_id
。我需要计算那些entity_id
只有记录的最低价格。
解决方案
您只能计算具有值的列。
此外,如果 entity_id 是数字字段,则需要删除引号。
例如:
SELECT MIN(min_price) AS base_price,entity_id
FROM catalog_product_index_price
WHERE entity_id IN (31439, 31440, 31441, 31442, 31443, 31444, 31445, 31446, 31447, 31448, 31469 ,31470, 31471, 31472, 31473)
AND min_price > 0;
推荐阅读
- watson-knowledge-studio - WEX 的输出是否支持基于 WKS 上下文的实体类型角色?
- c# - 从 Telegram 上的用户回复消息中访问以前的消息内容
- javascript - 在 JavaScript 中显示数组 onclick 中的下一项
- c++ - 用于 Motif 库 (C) 的列填充 RowColumn 类?
- java - 为什么静态块中的代码会执行多次?
- ssl - 如何生成证书 openssl TSLv1
- lisp - 为什么圆心坐标(键 10)不相对于 DXF 数据中的原点?
- php - 数据在表格中时不显示
- flutter - 如何使用具有相同类名的两种反序列化技术
- javascript - 带有phaser3的cordova无法正常播放ios音乐,声音已静音