【发布时间】:2018-05-18 15:50:16
【问题描述】:
我一直在尝试设置一个相当大的查询,它有一个 select 应该返回一个 group_concat(inated) 列,该列应该包含 4 个 concat(inated) 结果,这些结果是一个更大的查询的结果。
我将显示选择以消除任何混乱(希望如此):
# Group the local category_feature_product.id, local feature value -
# and external feature value for the product together.
GROUP_CONCAT(
CONCAT(cfpt.category_feature_product_id, '||', pcfpt.category_feature_product_id, '||', cfpt.value, '||', pcfpt.value)
SEPARATOR ';'
) AS mysql_category_feature_products
我希望上面的查询总是返回 4 个结果,其中可能有空值,但有时每个 group_concat 只返回 3 或 2 个结果。 (即:273458||2658774||5 被返回)。
我如何确保至少总是返回一个空值? 如果需要,我可以显示大型查询。
-- 更新--
特此完整查询、有效数据示例、实际结果和所要求的预期结果。
完整查询:
我要将结果过滤到一种产品,因为有数以万计的结果。我也只会使用mysql_category_feature_products 列。
实际结果(注意最后一行):
预期结果(注意最后一行)和有效数据示例:
-- 更新(再次)--
最后一行的实际预期结果不是250258||2583482||null||6 但250258||2583482||47||67 不为空,我的错。
使用新的 ifnull 语句重新运行查询会为最后一行返回不同的结果:250258||2583482||4 而不是 250258||2583482||6
【问题讨论】:
-
似乎很奇怪 .. 请 .. 更新您的问题,添加一个有效的数据样本、您的实际结果和预期结果 ..(以及完整的查询代码)
-
@scaisEdge 我已经更新了 OP。
标签: mysql concatenation