Postgresql LIKE - 查找ASCII文本的UTF-8变体

时间:2016-03-07 20:04:57

标签: postgresql sql-like

我试图在PostgreSQL表中查询列包含ASCII字母的行:

SELECT p.* FROM person AS p WHERE p.surname LIKE 'e%';

数据库包含UTF-8个字符串。例如:

Éxample
Ěxample

我需要找到只有ASCII e(或E)的行。为什么以上查询不起作用?

1 个答案:

答案 0 :(得分:0)

您可以使用unaccent extension

执行此操作
CREATE EXTENSION unaccent;

SELECT * FROM (
  VALUES
    ('Éxample'),
    ('Ěxample')
 ) v(s)
 WHERE lower(unaccent(s)) LIKE 'e%'