1
我有一個數據庫,其中包含一些重音字符,我必須儘快做一個不區分重音的搜索。 我試過兩種解決方法:Sqlite3變音不敏感搜索iphone
查詢所有可能的重音組合。例如: PERCHE PERCHE PERCHE PERCHE PERCHE PERCHE PERCHE PERCHE PERCHE
重寫LIKE操作,其中i第一與它們各自的正常替換所有重音字符,然後做一個比較如常。
第一個顯然太貴,但第二個不夠好。
有沒有我失蹤的解決方案?
感謝 馬爾科
我無法修改數據庫中的數據。 LIKE操作符替換符合您的建議,在比較之前刪除重音符號。 – Marco 2009-10-01 10:14:46
你能設置重音刪除結果的索引嗎?如果可能的話,你應該有很大的性能提升。 – kriss 2009-10-01 19:46:43
我在我以前的評論中忽略了一個細節:like運算符是否像名稱所示(即:like(accented,unaccented))本身執行非重疊比較?如果是這樣,那就不是我所建議的。如果更多地考慮一個不存在的操作符並使用通用的SQL比較運算符。兩者之間的區別在於,一個不明的參數可以被索引,而不是具有兩個參數的相似形式。 – kriss 2009-10-02 08:44:42