gpt4 book ai didi

php - GROUP_CONCAT 创建下拉列表

转载 作者:行者123 更新时间:2023-11-29 03:21:16 25 4
gpt4 key购买 nike

我的查询看起来是这样的:

SELECT p.product_id, 
Group_concat(DISTINCT Concat( optlan.option_label, ',', ovl.value)
SEPARATOR ';'
) AS
options_01,
Concat(Group_concat(DISTINCT optlan.option_label), ';',
Group_concat(DISTINCT ovl.value)) AS
options_02,
Concat_ws(';', optlan.option_label, Group_concat(DISTINCT ovl.value)) AS
options_03
FROM products p
JOIN category c
ON p.category_id = c.category_id
LEFT JOIN options_categories opcat
ON opcat.category_id = c.category_id
LEFT JOIN options opt
ON opt.option_id = opcat.option_id
LEFT JOIN options_lang optlan
ON optlan.option_id = opt.option_id
AND optlan.lang_id = 'NL'
LEFT JOIN option_values ov
ON ov.option_id = opt.option_id
LEFT JOIN option_values_lang ovl
ON ovl.value_id = ov.value_id
AND ovl.lang_id = 'NL'
WHERE p.product_id = '25'
GROUP BY p.product_id;

options_01 结果:

选项 a,40;选项 a,50;选项 b,60;选项 b,70

options_2 结果:

选项a,选项b;40,50,60,70

和 options_03:

选项 b;60,70

我想创建这个:

选项 a;40,50|选项 b;60,70

或者我需要在查询中使用 PHP 创建它吗?希望有人能帮助我。

最佳答案

我不知道你的数据库/表的结构,但我认为你可以像这样修改你的查询(对你的案例进行所有修改):

        SELECT
GROUP_CONCAT(options_try SEPARATOR '|') as your_field
FROM (
SELECT
CONCAT(optlan.option_label, ';', GROUP_CONCAT(ovl.value SEPARATOR ",")) AS options_try
FROM
products p
JOIN category c
ON p.category_id = c.category_id
LEFT JOIN options_categories opcat
ON opcat.category_id = c.category_id
LEFT JOIN options opt
ON opt.option_id = opcat.option_id
LEFT JOIN options_lang optlan
ON optlan.option_id = opt.option_id AND optlan.lang_id = 'NL'
LEFT JOIN option_values ov
ON ov.option_id = opt.option_id
LEFT JOIN option_values_lang ovl
ON ovl.value_id = ov.value_id AND ovl.lang_id = 'NL'
WHERE
p.product_id = '25'
GROUP
BY optlan.option_label;
) x1

请注意查询末尾的组。如果您不按“主要”字段对结果进行分组,则无法使用 group_concat。

关于php - GROUP_CONCAT 创建下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691257/

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