2016-03-07 58 views
0

的变种我想查询PostgreSQL表行,其中一列包含ASCII字母:PostgreSQL的LIKE - 找到UTF-8 ASCII文本

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

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

Éxample 
Ěxample 

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

+0

什么是您的查询实际上返回?请参阅http://www.stackoverflow.com/help/mcve –

回答

0

您可以用unaccent extension做到这一点:

CREATE EXTENSION unaccent; 

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