首页 > 解决方案 > 从 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只有记录的最低价格。

标签: mysql

解决方案


您只能计算具有值的列。

此外,如果 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;

推荐阅读