sql 选择查询中"部分匹配"的最标准标准是什么?



我被要求对数据库的查询是部分匹配的。

通常,要使用LIKE的部分匹配,我们需要知道将使用哪个通配符进行模式匹配,对吧?。

我的问题是:是否存在在没有任何特定约束的情况下应用部分匹配的"通用"情况?

这是我在项目中使用的一个示例查询,有人能给我一个如何在没有任何特定约束的情况下进行"部分匹配"查询的示例吗?

select
a.*,
coalesce(nullif(a.aachange, '.'), nullif(a.detailref, '.') ) as var,
b.*,
c.*
from
db-dummy.data c
join db-dummy.info a on
a.record_id = c.var_id
join db-dummy.s_data b on
b.record_id = c.s_id
order by
a.g_name;

更新:

我将添加更多关于所需输出的信息。

假设我有一个专栏:

+------------+
|    Col     |
+------------+
| ABCDEFG    |
| ABCDEFGH   |
| ABCDEFGHI  |
| AB12398JKH |
+------------+

如果是Where Col = 'AB',结果应该是:ABCDEFG, ABCDEFGH, ABCDEFGHI, AB12398JKH

如果是Where Col = 'ABC',结果应该是:ABCDEFG, ABCDEFGH, ABCDEFGHI

如果是Where Col = 'ABCDEFGH',结果应该是:ABCDEFGH, ABCDEFGHI

如果是Where Col = 'ABCDEFGHI',结果应该是:ABCDEFGHI

您似乎在寻找LIKE:

where col like concat('AB', '%')

您可以将'AB'作为参数传入。或者使用通配符('AB%'(设置参数。

最新更新