You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL多列数据查询问题:如何实现Ticker与Name列的任一关键词匹配查询

解决SQL多列关键词匹配问题

嘿,这问题其实挺容易搞定的!你只需要用SQL里的OR逻辑运算符,把ticker和name两列的匹配条件连接起来就行——只要其中任意一列匹配关键词,就会返回对应的行。

修改后的查询语句是这样的:

SELECT g.ticker, g.name 
FROM "General" g 
WHERE g.ticker ILIKE '%ibm%' 
   OR g.name ILIKE '%ibm%' 
LIMIT 25;

简单解释下:

  • OR运算符在这里的核心作用就是“满足任意一个条件即可”,所以不管是ticker里包含ibm,还是name里包含ibm(比如你提到的International Business Machines),都会被筛选出来。
  • 你用的ILIKE是PostgreSQL特有的不区分大小写匹配语法,刚好适配你的场景——不管用户输入的是IBM、ibm还是Ibm,都能精准匹配到结果。如果是其他数据库(比如MySQL),可以根据需求选择LIKE(默认不区分大小写,取决于数据库配置)或者LIKE BINARY(强制区分大小写)。

要是之后你需要匹配多个关键词,比如同时搜IBM和Microsoft,还可以把条件扩展成这样:

SELECT g.ticker, g.name 
FROM "General" g 
WHERE (g.ticker ILIKE '%ibm%' OR g.name ILIKE '%ibm%')
   OR (g.ticker ILIKE '%microsoft%' OR g.name ILIKE '%microsoft%')
LIMIT 25;

内容的提问来源于stack exchange,提问作者Lostsoul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:22:43