【问题标题】:"sqlLike" and "sqlLikeCaseInsensitive" escape character?“sql Like”和“sql Like Case Insensitive”转义字符?
【发布时间】:2019-05-02 17:56:50
【问题描述】:

在使用“sqlLike”和“sqlLikeCaseInsensitive”时,有什么方法可以转义 SQL Like 字符串?

示例:我想要匹配“abc_123”。使用“_______”(7 个下划线)也会返回“abcX123”,如何强制将“_”作为第 4 个字符?

【问题讨论】:

    标签: mdriven


    【解决方案1】:

    如果您以持久性方式发出查询,这实际上不是 mdriven 问题,而是 SQL 问题,因为 mdriven 将 Expression 转换为 SQL。因此,如果您真的想将结果限制为下划线,请查看以下问题: Why does using an Underscore character in a LIKE filter give me all the results?

    转义下划线的方式可能取决于您的 SQL 数据库的需要,因为不同的答案表明。

    【讨论】:

    • 谢谢彼得,仍然存在问题如何添加“转义字符”例如'\'来转义下划线、问号等。您答案中的链接不能解决我与 MDriven 相关的问题“sqlLike”和“sqlLikeCaseInsensitive”,不是一般的SQL。
    • 首先通过尝试不使用 MDriven 的直接 SQL 找出您的数据库系统需要哪个转义字符。如果您知道需要哪个字符,则必须在查询中实现此转义字符。如何执行此操作取决于执行查询的位置和方式。请检查 MDriven 生成的 SQL(打开 SQL 日志记录)以查看它是否正确传递给 DB。这一切肯定只适用于持久性查询。如果您只使用 OCL(而不是 OCLPS)或 AllInstances 而不是 PSQuery,那么答案不符合您的需求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 2017-08-15
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多