cd /news/ai-tools/a-mysql-plugin-that-filters-rows-by-… · home topics ai-tools article
[ARTICLE · art-135069] src=github.com ↗ pub= topic=ai-tools verified=true sentiment=· neutral

A MySQL plugin that filters rows by meaning (built on TypeSafe Jev)

A preview-release native MySQL plugin called mysql-ailike lets SQL queries filter rows and compare text columns using natural-language conditions via the AILIKE operator, powered by TypeSafe Jev and requiring a TypeSafe API key. AILIKE returns 1 for a match and 0 otherwise, returns NULL for any NULL argument, and sends evaluated values and prompts to TypeSafe, with each uncached evaluation making an API request. The plugin is licensed GPL-2.0-only and ships with a Docker demo and a join demo dataset of three supplier products and three catalog products.

read2 min views1 publishedSep 20, 2026
A MySQL plugin that filters rows by meaning (built on TypeSafe Jev)
Image: Michielbdejong (auto-discovered)

A native MySQL plugin for filtering rows and comparing text columns with natural-language conditions, powered by TypeSafe Jev.

Install and check compatibility · Try the Docker demo

Preview release. Requires a TypeSafe API key. Note: evaluated values and prompts are sent to TypeSafe.

Find columns based on NL meaning:

SELECT film_id, title, description
FROM sakila.film
WHERE film_id BETWEEN 1 AND 8
  AND description AILIKE 'The story takes place somewhere in Asia';
Syntax Question
column AILIKE 'condition' Does this value satisfy the condition?
ailike(value, prompt) Does this value satisfy the condition?
ailike(left, right, prompt) Do these values satisfy the relationship?

AILIKE returns 1 for a match and 0 otherwise. Any NULL argument returns NULL. Arguments are string. use CAST(... AS CHAR) for other types.

Narrow candidates with ordinary SQL conditions: each uncached evaluation makes an API request.

The demo dataset contains three supplier products and three catalog products. With AILIKE installed, open mysql -u root -p from the repository root and load it into a fresh database:

CREATE DATABASE ailike_join_demo;
USE ailike_join_demo;
SOURCE sql/join-demo.sql;

Pass both columns and describe the relationship:

SELECT a.id AS supplier_id, a.description AS supplier,
       b.id AS catalog_id, b.description AS catalog
FROM supplier_products AS a
JOIN catalog_products AS b
  ON a.category_id = b.category_id
 AND ailike(
   a.description,
   b.description,
   'Left and right describe the same kind of product, '
   'with matching material and key features. Wording may differ.'
 )
ORDER BY a.id, b.id;

Expected matches: (1, 1) for the steel bottle and vacuum flask, and (3, 3) for the headphones. The glass carafe and plastic bottle have no matching pair.

Format-independent date/period match #

SELECT rental_id, rental_date
FROM sakila.rental
WHERE customer_id = 1
  AND ailike(CAST(rental_date AS CHAR),
             'In July 2005')
ORDER BY rental_id;

AILIKE returns a model judgment. Use SQL date functions for exact comparisons.

Contributing · Report a vulnerability · AI coding agent skill · GPL-2.0-only

── more in #ai-tools 4 stories · sorted by recency
── more on @mysql 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/a-mysql-plugin-that-…] indexed:0 read:2min 2026-09-20 ·