Skip to main content

Filtering

TablePro provides a visual filter builder, quick search, and saved presets to help you find exactly the data you need. Build complex WHERE clauses without writing SQL, or drop into raw SQL mode for full control.
Filter Panel

Overview

The filtering system consists of several components:
  • Filter Panel — a visual builder for constructing WHERE clause conditions
  • Quick Search — instant search across all visible columns
  • Filter Presets — save and load named filter configurations
  • SQL Preview — see the generated WHERE clause before applying
  • Per-Tab State — each tab remembers its own filters independently

Filter Panel

Opening the Filter Panel

Toggle the filter panel visibility:
  • Click the Filter button in the toolbar
  • Or use the keyboard shortcut Cmd+F
The panel appears above the data grid area, pushing it down. The quick search field is automatically focused when the panel opens.

Building Filters

Each filter row consists of three parts:
  1. Column — select which column to filter on
  2. Operator — choose the comparison operator
  3. Value — enter the value to compare against
Filter row

Adding and Managing Filters

ActionHow
Add a filterClick the + button in the header
Duplicate a filterClick the duplicate icon on the filter row
Remove a filterClick the x button on the filter row
Focus a filterClick anywhere on the row

AND / OR Logic

Toggle between AND and OR logic using the segmented control in the filter header:
  • AND — all filters must match (intersection)
  • OR — any filter can match (union)
Use AND mode to narrow results progressively. Use OR mode when looking for rows that match any of several conditions.

Selecting and Applying Filters

Each filter row has a checkbox for selective application:
ActionDescription
Select/deselectToggle the checkbox on individual filters
Select AllUse the “Select All” checkbox in the footer
Apply singleClick the play button on a filter row to apply just that filter
Apply AllClick Apply All in the footer to apply all selected filters
UnsetClick Unset to clear all applied filters and reload unfiltered data
Only valid filters with complete column, operator, and value (where required) can be applied. Invalid filters show a disabled play button.

Operators

The filter builder supports 18 operators to cover all common comparison needs.
OperatorDisplay NameRequires ValueDescription
=equalsYesExact match
!=not equalsYesExcludes exact match
CONTAINScontainsYesSubstring match (LIKE %value%)
NOT CONTAINSnot containsYesExcludes substring
STARTS WITHstarts withYesPrefix match (LIKE value%)
ENDS WITHends withYesSuffix match (LIKE %value)
>greater thanYesGreater than comparison
>=greater or equalYesGreater than or equal
<less thanYesLess than comparison
<=less or equalYesLess than or equal
IS NULLis NULLNoColumn value is NULL
IS NOT NULLis not NULLNoColumn value is not NULL
IS EMPTYis emptyNoColumn value is empty string
IS NOT EMPTYis not emptyNoColumn value is not empty string
INin listYesValue in comma-separated list
NOT INnot in listYesValue not in comma-separated list
BETWEENbetweenYes (two values)Value between two bounds
REGEXmatches regexYesRegular expression match

Operators Without Values

When you select IS NULL, IS NOT NULL, IS EMPTY, or IS NOT EMPTY, the value field is hidden and replaced with a dash indicator. No input is needed.

BETWEEN Operator

When BETWEEN is selected, two value fields appear with an “and” label between them. Both values are required.
BETWEEN filter

IN / NOT IN Operators

Enter comma-separated values to match against a list:
value1, value2, value3

Raw SQL Mode

For conditions the visual builder cannot express, use Raw SQL mode.

Using Raw SQL

  1. Click the column dropdown on a filter row
  2. Select Raw SQL at the top of the list
  3. The operator dropdown disappears and the value field becomes a free-text SQL input
  4. Type your WHERE clause condition directly
Raw SQL filter
Examples:
created_at > NOW() - INTERVAL 7 DAY
LOWER(name) LIKE '%smith%' AND status IN ('active', 'pending')
price * quantity > 1000
Raw SQL is injected directly into the WHERE clause. Ensure your syntax is correct for the connected database type.
Quick Search provides instant filtering across all visible columns without building individual filter rows.
  1. Open the filter panel
  2. Type in the Quick search across all columns… field
  3. Press Enter to apply the search
Quick search
Quick search is always visible when the filter panel is open. Click the x button to clear the search.
Quick Search is ideal for ad-hoc lookups. For recurring filter patterns, save them as a preset instead.

Filter Presets

Save your current filter configuration as a named preset for quick reuse.

Saving a Preset

  1. Build your filters in the filter panel
  2. Click the folder icon in the filter header
  3. Select Save as Preset…
  4. Enter a name and click Save

Loading a Preset

  1. Click the folder icon in the filter header
  2. Select a preset from the dropdown menu
  3. The saved filters replace the current filter list

Managing Presets

ActionHow
LoadClick the preset name in the folder menu
DeleteSelect Delete Preset > click the preset name
OverwriteSave a new preset with the same name
Presets are stored via UserDefaults and persist across sessions.
Presets save the filter definitions (column, operator, value) but not whether they were applied. After loading a preset, click Apply All to activate the filters.

SQL Preview

Preview the exact WHERE clause that will be sent to the database before applying.

Viewing the Preview

  1. Build your filters
  2. Click the SQL button in the filter footer
  3. A sheet displays the generated WHERE clause
SQL Preview

What the Preview Shows

  • The complete WHERE clause with proper quoting for your database type
  • MySQL uses backticks (`column`)
  • PostgreSQL uses double quotes ("column")
  • AND/OR logic based on the current mode
  • A “Copy” button to copy the SQL to clipboard
If some (but not all) filters are selected, the preview shows only the selected filters. Otherwise, it shows all valid filters.

Handling Invalid Filters

If filters exist but none are valid, the preview shows a helpful message indicating what needs to be completed:
  • Select a column
  • Enter a value (if required by the operator)
  • Fill in the second value for BETWEEN

Per-Tab Filter State

Each tab in TablePro maintains its own independent filter state.

How It Works

  • Opening a table creates a fresh filter state for that tab
  • Switching between tabs preserves each tab’s filters
  • Applied filters remain active when you switch away and return
  • The filter panel visibility is remembered per tab

State Components

Each tab stores:
ComponentDescription
Filter listAll filter rows (applied or not)
Applied filtersCurrently active filters affecting the query
Panel visibilityWhether the filter panel is shown or hidden

Filter Settings

Configure default filter behavior in the settings popover.

Accessing Settings

Click the gear icon in the filter panel header to open the settings popover.
Filter settings

Default Column

Controls which column is pre-selected when adding a new filter:
OptionDescription
Raw SQLNew filters default to Raw SQL mode
Primary KeyNew filters default to the table’s primary key column
Any ColumnNew filters default to the first available column

Default Operator

Controls which operator is pre-selected when adding a new filter:
OptionDescription
Equal (=)Default to exact match
ContainsDefault to substring match

Panel State on Open

Controls the filter panel behavior when opening a table:
OptionDescription
Always HideFilter panel starts hidden (default)
Always ShowFilter panel is always visible when opening a table
Restore Last FilterRestores the last filters used on that specific table
The “Restore Last Filter” option remembers filters per table name. If you frequently filter the same table with the same conditions, this saves setup time every session.

Keyboard Shortcuts

ActionShortcut
Toggle filter panel / Quick searchCmd+F
Apply filter (in value field)Enter

Next Steps