首页 > 解决方案 > 搜索具有 * 的字符串

问题描述

我有一个包含符号的表*

q)sl:([] s:(`$"g*g";`$"b*l";`$"bx"))
q)sl
s
---
g*g
b*l
bx

如何在搜索时转义*(通配符),我想搜索所有包含*为普通字符的符号?

例如,这个返回包含 'b' 的两行,我只希望它返回 'b*l'

q)select from sl where s like "b*"
s
---
b*l
bx

标签: kdb

解决方案


您可以通过在特殊字符周围使用方括号来执行此操作,如此所述。

所以在这种情况下:

q)select from sl where s like "b[*]*"
s  
---
b*l

或者匹配其中的任何*内容:

q)select from sl where s like "*[*]*"
s  
---
g*g
b*l

推荐阅读