gpt4 book ai didi

sql - PostgreSQL 将字符串匹配到动态输入的字符串

转载 作者:行者123 更新时间:2023-11-29 14:16:46 24 4
gpt4 key购买 nike

我的数据库表 A 中有一个 varchar 字段,我们称它为 store_name,该字段从实体 A 获取其值,现在实体 B 将 store_name 输入到不同的数据库表 B 现在我想获取表 A 中的所有记录store_name 匹配表 B 中的值。

由于我无法控制这 2 个字段的值,您建议我如何进行查询?

您如何看待 PostgreSQL fuzzystrmatch?这些表包含数千条记录。

谢谢

最佳答案

假设A表和B表都在同一个数据库中。我想由于您不控制数据的插入,所以您不确定值是否大小写相同或者可能存在拼写不匹配。

情况一:如果只是大小写不匹配的问题,可以使用ilike:

Select a.store_name
from a, b
Where a.store_name ilike b.store_name

案例 2:如果您还想检查拼写不匹配,但单词听起来相似,那么在安装 postgresql-contrib 包并创建扩展 fuzzystrmatch 之后,您可以使用:

Select a.store_name
from a, b
Where a.store_name ilike b.store_name OR
soundex(a.store_name) = soundex(b.store_name)

如果您正在处理可能并不总是英文的名称,使用变音位或 dmetaphone 函数而不是 soundex 可能更合适。

文档:Fuzzystrmatch

关于sql - PostgreSQL 将字符串匹配到动态输入的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45370287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com