0

我在下面有示例 sql 查询:

    选择..
    FIND_IN_SET((选择 cat_id
    FROM mydb.table_categories
    WHERE cat_name LIKE "%Pets%"),b.categories_id)
    
显示mysql错误。

此示例查询:

    (选择 cat_id
    FROM mydb.table_categories
    WHERE cat_name LIKE "%Pets%")
    
返回 (25,260) 的结果,我想比较它是否在 b.categories_id 中找到,其中 b.categories id 包含 (9,25,257,300)

也就是说我们可以这样使用find_in_set吗?find_in_set((25,260),(9,25,257,300))?

4

1 回答 1

2

尝试使用GROUP_CONCAT

SELECT ....
     FIND_IN_SET((SELECT GROUP_CONCAT(cat_id)
                  FROM   mydb.table_categories
                  WHERE cat_name LIKE "%Pets%"),b.categories_id)
FROM....

或者,您仍然可以在这个上使用JOINorIN子句。比使用好得多GROUP_CONCAT您可以发布具有所需结果的样品日期吗?

于 2013-01-08T09:22:36.847 回答