【问题标题】:Escape the * character in KDB SQL "like" queries转义 KDB SQL“like”查询中的 * 字符
【发布时间】:2019-08-09 08:31:57
【问题描述】:

我有一个场景,我的 KDB 表中的数据在一个字符串中包含多个连续的星号字符,我需要能够搜索该字符串。假设我要搜索的字符串是foo**bar,我想写的查询是:

select from table where column like "foo**bar" 

我需要转义 * 字符,但我在文档中找不到如何做到这一点。我已经尝试过反斜杠和其他几个变体但没有成功。想必这应该是可能的吧?

【问题讨论】:

    标签: kdb


    【解决方案1】:

    方括号与like 一起用作转义字符

    "foo**bar" like "foo[*][*]bar"
    

    这是来自Kx wiki的引用:

    Special characters can be matched by bracketing them
    

    【讨论】:

    • 太棒了,谢谢。我知道那一定是在文档中,我只是找不到它:)
    • 超级有用的问题和答案,谢谢你们......补充一下,我使用"[*]*" 来标记任何带有前导星的字段作为示例。
    【解决方案2】:

    现在,您可以将re2 与 kdb+/q 一起使用。将始终建议为此任务使用一些标准正则表达式,而不是 like

    【讨论】: