无法在 Realm Swift 中写入字符串不等于的查询



我正在将我的 SQLite 数据库更改为一个领域,但我无法将 SQLite 查询转换为领域

我尝试过!=NOT CONTAINS但没有用。 如何实现这一点?

下面是我的旧SQLite查询,我正在尝试将其转换为领域数据库

select COUNT(*) from (tabledata)
where  ifnull(length((KEY_DATA)), 0) <> 0 and
lower((KEY_DATA)) <> lower('N/A') and
lower((KEY_DATA)) <> lower('NA') and
lower((KEY_DATA)) <> lower('not applicable')

我正在尝试像

let countpredicate = NSPredicate(format: "data.length > 0 AND data != [c]'N/A' AND data != [c]'NA' AND data != [c]'not applicable'")

这有什么问题?

我认为您应该将[c]与操作数而不是字符串结合使用

let countpredicate = NSPredicate(format: "data.length > 0 AND data !=[c] 'N/A' AND data !=[c] 'NA' AND data !=[c] 'not applicable'")

也许你可以使用 IN

let countpredicate = NSPredicate(format: "data.length > 0 AND data NOT IN[c] ('N/A','NA','not applicable'")

您的谓词未正确构造:

取代

(数据不为空(

data.length > 0data != ''

(数据不包含(

data != [c]'<insert text>'!(data contains[c] '<insert text>')

最后:

NSPredicate(format: "data != %@ && !(data contains[c] %@) && !(data contains[c] %@) && !(data contains[c] %@)", "", "N/A", "NA", "not applicable")

将代码更改为:

let countpredicate = NSPredicate(format: "data.length > 0 AND data !CONTAINS[c] 'N/A' AND data !CONTAINS[c] 'NA' AND data !CONTAINS[c] 'not applicable'")

[c]表示案例煽动

最新更新