Swift 喜欢不适用于俄罗斯符号吗?(斯威夫特,SQLite)
我将like用于小写和俄语符号,但LOWER在查询中不会将它们转换为小写。我试图创建自己的函数,但它对我不起作用。如何解决这个问题 在研究了SQLite的文档之后,我了解到您需要连接ICU库。如何在这个插件中做到这一点 库:stephencelis/SQLite.swift() 谢谢你的帮助Swift 喜欢不适用于俄罗斯符号吗?(斯威夫特,SQLite),swift,sqlite,sqlite.swift,Swift,Sqlite,Sqlite.swift,我将like用于小写和俄语符号,但LOWER在查询中不会将它们转换为小写。我试图创建自己的函数,但它对我不起作用。如何解决这个问题 在研究了SQLite的文档之后,我了解到您需要连接ICU库。如何在这个插件中做到这一点 库:stephencelis/SQLite.swift() 谢谢你的帮助 // in name value: ПРИВЕТ from database let search_name = "Привет" user.filter(name.lowercaseS
// in name value: ПРИВЕТ from database
let search_name = "Привет"
user.filter(name.lowercaseString.like("%" + search_name.lowercased() + "%"))
SQLite LOWER仅适用于ASCII。如果您想对俄语(或ASCII以外的任何其他符号)不区分大小写,请使用FTS3/FTS4(或FTS5) SQLite.swift具有相应的全文搜索模块 要在现有数据库的项目中使用它,您应该通过FTS模块连接到虚拟表,并使用.match筛选查询
// CREATE VIRTUAL TABLE "table" USING fts4("row0", "row1"), if not exists
try db.run(table.create(.FTS4(row0, row1), ifNotExists: true))
// SELECT * FROM "table" WHERE "row0" MATCH 'textToMatch*'
try db.prepare(table.filter(row0.match("\(textToMatch)*")))
// SELECT * FROM "table" WHERE "any row" MATCH 'textToMatch*'
try db.prepare(table.match("\(textToMatch)*")))