大家好,我有一个西班牙语医学术语数据库。可以说表description
有一个名为term
的列。
如果我使用以下查询:
SELECT *
FROM description
WHERE unaccent(description.term) ILIKE '%sueño%';
结果集为空但我知道该表的条款为ñ
。例如,查询:
SELECT *
FROM description
WHERE description.term ILIKE '%sueño%';
会返回多个结果。
我需要使用unaccentextensión来匹配á
和a
。
目前我正在使用这项工作,但我认为它效率不高:
SELECT *
FROM description
WHERE unaccent(description.term) ILIKE '%${CRITERIA}%' OR description.term ILIKE '%${CRITERIA}%';
任何人都可以帮助我理解为什么会这样吗?提前谢谢!
答案 0 :(得分:2)
这不起作用:
SELECT *
FROM description
WHERE unaccent(description.term) ILIKE '%sueño%';
由于unaccent(description.term)
没有ñ
。您正在使用ILIKE
与ñ
进行比较。如果“标准”将具有重音,那么您应该在两侧使用非标准。
这有效:
SELECT *
FROM description
WHERE unaccent(description.term) ILIKE unaccent('%sueño%');