gpt4 book ai didi

sql - 使用 LIKE 查找 'exact' 匹配项

转载 作者:行者123 更新时间:2023-11-29 12:36:42 25 4
gpt4 key购买 nike

您好,我需要在查询中添加 WHERE 子句。问题是数字列包含如下值:

(row 1) 1015/14,910/15
(row 2) 90/15,14/15
(row 3) 10/15, 900/15, 1000/15
(row 4) 1019/15, 1018/15
(row 5) null

....

是数字+年份。在列中我可以有更多的数字或空值。列类型:字符串。

现在我需要找到号码"10/15" 或其他。

我尝试使用 number LIKE '%10/15%' 但结果是:(行 1) 910/15

与(第 3 行)10/15...

所以我不能使用它。

当我尝试使用 WHERE nr = '10/15' 时,我发现只有 1 个数字 = 10/15 的行。

那么我如何找到只有我的部分字符串但只有完整数字的行?不是一部分?

最佳答案

我认为正则表达式在这里可能工作得很好:

where num_text ~ '\D10/15\D|^10/15\D|\D10/15$|^10/15$'

\D 原子表示任何非数字。

这有点晦涩,但 ts_vector 可能确实适合您:

select *
from Your_Table
where
to_tsvector(num_text) @@ '10/15'

ts_vector 方法作为它的可扩展性优势——如果您要搜索数百万行,有一些方法可以使它变得非常快。如果您有 1,000 行,那么这无关紧要。

关于sql - 使用 LIKE 查找 'exact' 匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35408637/

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