---
id: containedby
title: '.containedBy()'
slug: containedby
custom_edit_url: https://github.com/supabase/supabase/edit/master/spec/supabase_js_v1_legacy.yml
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'

```js
const { data, error } = await supabase
  .from('countries')
  .select('name, id, main_exports')
  .containedBy('main_exports', ['cars', 'food', 'machine'])
```

## Notes

- `.containedBy()` can work on array columns or range columns.

  ```js
  .containedBy('arraycol',["a","b"]) // You can use a javascript array for an array column
  .containedBy('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column.
  .containedBy('rangecol','(1,2]') // Use Postgres range syntax for range column.
  .containedBy('rangecol',`(${arr}]`) // You can insert an array into a string.
  ```

## Examples

### With `select()`

```js
const { data, error } = await supabase
  .from('countries')
  .select('name, id, main_exports')
  .containedBy('main_exports', ['cars', 'food', 'machine'])
```

### With `update()`

```js
const { data, error } = await supabase
  .from('countries')
  .update({ name: 'Mordor' })
  .containedBy('main_exports', ['orks', 'surveillance', 'evil'])
```

### With `delete()`

```js
const { data, error } = await supabase
  .from('countries')
  .delete()
  .containedBy('main_exports', ['cars', 'food', 'machine'])
```

### With `rpc()`

```js
// Only valid if the Postgres function returns a table type.
const { data, error } = await supabase
  .rpc('echo_all_countries')
  .containedBy('main_exports', ['cars', 'food', 'machine'])
```
