簡體   English   中英

MYSQL列出所有類別的所有產品

[英]MYSQL List all products with all categories

我有這個架構:

table_products :product_id,名稱,價格,

table_categories :category_id,名稱,

table_categories_products :category_id,product_id

我想列出數據庫中的所有產品,包括每個產品的所有類別。

實際上我使用此查詢:

SELECT p.id, p.name, p.price, GROUP_CONCAT(c.category_id, ';', c.name SEPARATOR ',')
FROM table_products
LEFT JOIN table_categories_products tcp ON tcp.product_id=p.product_id
LEFT JOIN table_categories c ON c.category_id=p.product_id
GROUP BY p.id

問題在於,一個產品可能屬於無限類別,並且group_concat具有大小限制。

更新

我已經考慮過增加“ group_concat_max_len”的選項,但不允許使用無限字符串

您可以通過以下方式更改group_concat的最大大小:

SET [GLOBAL | SESSION] group_concat_max_len = val;

默認值為1024,最大可設置值為1073741824

至少文檔是這樣說的: http : //dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM