# Mute all categories but

**URL:** https://meta.discourse.org/t/mute-all-categories-but/384552
**Category:** Support
**Created:** [October 2, 2025, 3:07pm UTC](https://meta.discourse.org/t/mute-all-categories-but/384552 "2025-10-02T15:07:01Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)
#### Post date: [October 2, 2025, 3:07pm UTC](https://meta.discourse.org/t/mute-all-categories-but/384552/1 "2025-10-02T15:07:02Z")

</div>

## Problem

I have a group with people using _mailing\_list\_mode_, that has a “watch first post” on a category.

Because they’re using _mailing\_list\_mode_, they receive everything from public categories that they are not (necessarily) interested about. So I would like to **mute everything but** the watched category.

Is there a way to do this without having to identify each and every category to mute – or is there an easy way (using #data-explorer queries) to get those categories?

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [October 2, 2025, 4:51pm UTC](https://meta.discourse.org/t/mute-all-categories-but/384552/2 "2025-10-02T16:51:18Z")

</div>

So you want to mute all categories in the settings of the group except for the ones that are watched or where the first post is watched?

I think you could use [data explorer](https://meta.discourse.org/t/32566?silent=true) to provide you a list of the category IDs separated with `|` so you can paste it directly into the group setting.

Like this:

Is that what you had in mind?

This is the query I used to get that list:

```sql
--[params]
-- group_id :group

WITH excluded_categories AS (
  SELECT category_id
  FROM group_category_notification_defaults
  WHERE group_id = :group
    AND notification_level IN (3, 4)
),
category_names AS (
  SELECT id
  FROM categories
  WHERE id NOT IN (SELECT category_id FROM excluded_categories)
)
SELECT string_agg(CAST(id AS TEXT), '|') AS category_list
FROM category_names;

```

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [November 1, 2025, 4:51pm UTC](https://meta.discourse.org/t/mute-all-categories-but/384552/3 "2025-11-01T16:51:44Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
