gpt4 book ai didi

mysql - 在单个查询中评估特定的分组值?

转载 作者:行者123 更新时间:2023-11-30 23:32:17 25 4
gpt4 key购买 nike

我有一个图书数据库,其中包含与图书相关的类别和标签。我正在尝试构建一个过滤器,让用户可以过滤多个类别或标签,并查看具有这些标签或类别的书籍。它适用于单个类别或标签,但如果由于按图书 ID 分组而存在多个标签或类别,它就会崩溃。

SELECT books.id as id,title, sub_title,medium_image_url,
amzn_url,amzn_review as review,SUBSTRING(kindle_price,2) as price,
IFNULL(ROUND(combined_ratings.love/(combined_ratings.love+combined_ratings.hate)*100), 0) AS rating ,
categories.category as category,GROUP_CONCAT(DISTINCT categories.id SEPARATOR ", ") as all_cats
FROM books
JOIN combined_ratings ON books.id = combined_ratings.book_id JOIN book_categories ON books.id = book_categories.book_id
JOIN categories ON book_categories.category_id = categories.id
WHERE (SUBSTRING(kindle_price,2) >= 0
AND SUBSTRING(kindle_price,2) <= 12
AND kindle_price <> "")
AND (IFNULL(ROUND(combined_ratings.love/(combined_ratings.love+combined_ratings.hate)*100), 0) >= 0
AND IFNULL(ROUND(combined_ratings.love/(combined_ratings.love+combined_ratings.hate)*100), 0) <= 100)
GROUP BY id
ORDER BY price ASC, rating DESC

我试过使用 GROUP_CONCAT 和 HAVING,我刚刚读到有关 IN() 的内容,但我试过了,但它不起作用。我现在真正需要做的就是对它执行类似 IN() 的操作,有什么建议吗?

编辑:我使用了它并且能够获得单个类别的结果,但它只能工作一次......这有效...

AND FIND_IN_SET( categories.id, '6' ) > 0 

这不是

AND FIND_IN_SET( categories.id, '6' ) > 0 AND FIND_IN_SET( categories.id, '5' ) > 0 

如果我能让它工作,它就解决了我的问题。

最佳答案

前段时间有stackoverflow的帖子。请check it out .另一种方法是每次都创建临时表并将所有标签和类别放在那里,然后进行连接。

关于mysql - 在单个查询中评估特定的分组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937588/

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