首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PostgreSQL中用小写+取消重音+多列进行选择

在PostgreSQL中用小写+取消重音+多列进行选择
EN

Stack Overflow用户
提问于 2018-01-10 15:26:40
回答 2查看 492关注 0票数 1

学校

代码语言:javascript
运行
复制
id | address                 | name
1  | Rybničná 59, Bratislava | Stredná odborná škola elektrotechnická
2  | Ul. Sibírska 1, Trnava  | Stredná odborná škola elektrotechnická

我想要的

如果我想键入:

  1. 斯特里多德伯纳
  2. 斯特顿
  3. [医]条斑

它必须找到id 1和2的行。

如果我想输入布拉迪斯拉发或布拉蒂,它必须找到id 1的行。

我所拥有的

代码语言:javascript
运行
复制
SELECT * FROM schools WHERE unaccent(address) LIKE ('%' || 'bratis' || '%');

我需要从2列中选择(地址和名字)

EN

回答 2

Stack Overflow用户

发布于 2018-01-10 15:39:22

要使搜索个案无知觉,请使用ILIKE而不是LIKE。然后,您也希望从输入字符串中移除重音。最后,只需使用ANDOR来组合这两种条件(请注意,对于这两列,您可以使用相同的搜索术语--在本例中使用OR )。

代码语言:javascript
运行
复制
SELECT * FROM schools 
WHERE unaccent(address) ILIKE ('%' || unaccent('bratis') || '%')
  AND unaccent(name) ILIKE ('%' || unaccent('Stredná odborná') || '%')
票数 1
EN

Stack Overflow用户

发布于 2018-01-10 15:38:18

我希望这行得通

代码语言:javascript
运行
复制
  SELECT * FROM schools 
  WHERE unaccent(address|| ' ' ||name) ILIKE ('%' || 'bratis' || '%');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48190739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档