Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 喜欢不适用于俄罗斯符号吗?(斯威夫特,SQLite)_Swift_Sqlite_Sqlite.swift - Fatal编程技术网

Swift 喜欢不适用于俄罗斯符号吗?(斯威夫特,SQLite)

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

我将like用于小写和俄语符号,但LOWER在查询中不会将它们转换为小写。我试图创建自己的函数,但它对我不起作用。如何解决这个问题

在研究了SQLite的文档之后,我了解到您需要连接ICU库。如何在这个插件中做到这一点

库:stephencelis/SQLite.swift() 谢谢你的帮助

// 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)*")))