如何解决如何使用 sqlkata
我有以下担忧: 我一直在处理 sqlkata 几个小时,但我没有遇到以下问题: 我想创建一个带有链接 where 子句的 select 语句。但是,我找不到设置大括号的方法。我当前的 sql 语句如下所示:
SELECT [id],[filename],[extension],[ocr_full_ready],[pdf_type] FROM [document]
WHERE [extension] IN ('.eml','.msg','.docx','.xlsx','.doc','.xls','.txt','.lnk')
AND [ocr_full_ready] IS NULL OR [ocr_full_ready] BETWEEN 3 AND 9
AND NOT (LOWER([filename]) like 'gobd%')
ORDER BY [id] DESC
我需要的是:
SELECT [id],'.lnk')
AND ([ocr_full_ready] IS NULL OR [ocr_full_ready] BETWEEN 3 AND 9)
AND NOT (LOWER([filename]) like 'gobd%')
ORDER BY [id] DESC
注意第三行中添加的大括号。
我当前的 sqlkata 语句如下所示:
Dim query = qf.Query("document").Select("id","filename","extension","ocr_full_ready","pdf_type") _
.WhereIn("extension",New String() {".eml",".msg",".docx",".xlsx",".doc",".xls",".txt",".lnk"}) _
.WhereNull("ocr_full_ready").OrWhereBetween("ocr_full_ready",3,9) _
.WhereNotLike("filename","Gobd%") _
.OrderByDesc("id") _
.Limit(1)
我相信这不是什么难事。我想我一直想念解决方案。 感谢所有帮助的人。
解决方法
根据 SqlKata 的 Nested Conditions 文档:
要将条件分组,只需将它们包装在另一个 Where
块中。
所以在你的例子中它会是:
Dim query = qf.Query("document").Select("id","filename","extension","ocr_full_ready","pdf_type") _
.WhereIn("extension",New String() {".eml",".msg",".docx",".xlsx",".doc",".xls",".txt",".lnk"}) _
.Where(Function(w) w.WhereNull("ocr_full_ready").OrWhereBetween("ocr_full_ready",3,9)) _
.WhereNotLike("filename","Gobd%") _
.OrderByDesc("id") _
.Limit(1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。