我有两张桌子。一个是product_details,另一个是size。
每种产品都有多种尺寸。我必须为每种产品设定尺寸(如100,125,150)。
但我已经在product_details表中将大小记录保存为JSON值(如[" 1"," 2"," 8"])。
当我尝试使用IN子句&子查询,我无法获得记录。
请检查此链接:style guide
SELECT po_det.po_det_size as json_str,
REPLACE(REPLACE(REPLACE(po_det.po_det_size, '[',''),']',''),'"','')) str,
(SELECT GROUP_CONCAT(size.size_name)
FROM tbl_product_size size
WHERE size.size_id IN (str)
) AS sizes
FROM tbl_purchase_order_details po_det
请帮我拿到记录。
答案 0 :(得分:2)
您无法使用in
。您可以使用find_in_set()
:
where find_in_set(size.size_id, str) > 0
我认为您不能在子查询中使用列别名,因此这可能是另一个问题:
where find_in_set(size.size_id, REPLACE(REPLACE(REPLACE(po_det.po_det_size, '[',''),']',''),'"',''))) > 0