表学校
id | address | name
1 | Rybničná 59, Bratislava | Stredná odborná škola elektrotechnická
2 | Ul. Sibírska 1, Trnava | Stredná odborná škola elektrotechnická
我想要的
如果我想键入:
它必须找到id 1和2的行。
如果我想输入布拉迪斯拉发或布拉蒂,它必须找到id 1的行。
我所拥有的
SELECT * FROM schools WHERE unaccent(address) LIKE ('%' || 'bratis' || '%');
我需要从2列中选择(地址和名字)
发布于 2018-01-10 15:39:22
要使搜索个案无知觉,请使用ILIKE
而不是LIKE
。然后,您也希望从输入字符串中移除重音。最后,只需使用AND
或OR
来组合这两种条件(请注意,对于这两列,您可以使用相同的搜索术语--在本例中使用OR
)。
SELECT * FROM schools
WHERE unaccent(address) ILIKE ('%' || unaccent('bratis') || '%')
AND unaccent(name) ILIKE ('%' || unaccent('Stredná odborná') || '%')
发布于 2018-01-10 15:38:18
我希望这行得通
SELECT * FROM schools
WHERE unaccent(address|| ' ' ||name) ILIKE ('%' || 'bratis' || '%');
https://stackoverflow.com/questions/48190739
复制相似问题