Files
email-tracker/external/duckdb/test/sql/function/string/test_like.test
2025-10-24 19:21:19 -05:00

293 lines
4.0 KiB
SQL

# name: test/sql/function/string/test_like.test
# description: Test LIKE statement
# group: [string]
statement ok
PRAGMA enable_verification
# scalar like
query T
SELECT 'aaa' LIKE 'bbb'
----
0
query T
SELECT 'aaa' LIKE 'abab'
----
0
query T
SELECT 'aaa' LIKE 'aaa'
----
1
query T
SELECT 'aaa' LIKE '%'
----
1
query T
SELECT 'aaa' LIKE '%a'
----
1
query T
SELECT 'aaa' LIKE '%b'
----
0
query T
SELECT 'aaa' LIKE 'a%'
----
1
query T
SELECT 'aaa' LIKE 'b%'
----
0
query T
SELECT 'aaa' LIKE 'a_a'
----
1
query T
SELECT 'aaa' LIKE 'a_'
----
0
query T
SELECT 'aaa' LIKE '__%'
----
1
query T
SELECT 'aaa' LIKE '____%'
----
0
query T
SELECT 'ababac' LIKE '%abac'
----
1
query T
SELECT 'ababac' LIKE '%%%abac'
----
1
query T
SELECT 'ababac' LIKE 'abab%%%%%'
----
1
query T
SELECT 'ababac' LIKE '%%%a%%%b%%a%b%%%%%a%c%%'
----
1
query T
SELECT 'ababac' LIKE '%%%a%%%b%%a%b%%%%%a%d%%'
----
0
query T
SELECT 'ababac' NOT LIKE '%abac'
----
0
query T
SELECT 'aabbccc' LIKE '%aa%bb%cc'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE ''
----
0
query T
SELECT 'zebra elephant tiger horse' LIKE '%'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra'
----
0
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra elephant tiger horse'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra elephant tiger horse%'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE '%zebra elephant tiger horse%'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE '%zebra elephant tiger horse blabla'
----
0
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra elephant tiger horse blabla%'
----
0
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra%'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE '%horse'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra%elephant%horse'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra%elephant%tiger%horse'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE '%zebra%elephant%tiger%horse'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra%elephant%tiger%horse%'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE '%zebra%elephant%tiger%horse%'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE '%%zebra %%%ele%phan%t t%ig%er% horse%'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra%tiger%horse'
----
1
query T
SELECT 'zebra elephant tiger horse' LIKE 'zebra%tiger%elephant%horse'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE ''
----
1
query T
SELECT 'zebra elephant tiger horse' NOT LIKE '%'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra'
----
1
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra elephant tiger horse'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE '%horse'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%elephant%horse'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%elephant%tiger%horse'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE '%zebra%elephant%tiger%horse'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%elephant%tiger%horse%'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE '%zebra%elephant%tiger%horse%'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE '%%zebra %%%ele%phan%t t%ig%er% horse%'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%tiger%horse'
----
0
query T
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%tiger%elephant%horse'
----
1
# like with table
statement ok
CREATE TABLE strings(s STRING, pat STRING);
statement ok
INSERT INTO strings VALUES ('abab', 'ab%'), ('aaa', 'a_a'), ('aaa', '%b%')
query T
SELECT s FROM strings WHERE s LIKE 'ab%'
----
abab
query T
SELECT s FROM strings WHERE 'aba' LIKE pat
----
abab
aaa
aaa
query T
SELECT s FROM strings WHERE s LIKE pat
----
abab
aaa
# Reject invalid collations
statement error
SELECT 'hello' LIKE 'hê?llo' COLLATE idontexist;
----
<REGEX>:.*Catalog Error.*does not exist.*