我被要求对数据库的查询是部分匹配的。
通常,要使用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%'
(设置参数。