第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在SQLite查詢中忽略重音(Android)

如何在SQLite查詢中忽略重音(Android)

收到一只叮咚 2019-09-03 17:12:44
我是Android的新手,我正在使用SQLite進(jìn)行查詢。我的問題是,當(dāng)我在字符串中使用重音時(shí),例如AAAAAAAAAAAAAAAAAA如果我做:SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%a%' ORDER BY MOVIE_NAME;回歸:AAAaaa(它忽略了其他人)但如果我這樣做:SELECT * FROM TB_MOVIE WHERE MOVIE_NAME LIKE '%à%' ORDER BY MOVIE_NAME;回歸:ààà(忽略標(biāo)題“ààà”)我想在SQLite數(shù)據(jù)庫中選擇字符串而不關(guān)心重音和大小寫。請幫忙。
查看完整描述

3 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

通常,SQL中的字符串比較由列或表達(dá)式COLLATE規(guī)則控制。在Android中,只預(yù)定義了三個(gè)校對(duì)序列:BINARY(默認(rèn)),LOCALIZED和UNICODE。它們都不適合您的用例,遺憾的是,Java API中沒有公開用于安裝新歸類函數(shù)的C API。


要解決這個(gè)問題:


例如,向表中添加另一列 MOVIE_NAME_ASCII

將值存儲(chǔ)到此列中并刪除重音符號(hào)。您可以通過將字符串規(guī)范化為Unicode Normal Form D(NFD)并刪除非ASCII代碼點(diǎn)來刪除重音,因?yàn)镹FD表示重音字符大致為純ASCII +組合重音符號(hào):


String asciiName = Normalizer.normalize(unicodeName, Normalizer.Form.NFD)

    .replaceAll("[^\\p{ASCII}]", "");

您的文本是否在此ASCII規(guī)范化列上搜索,但顯示原始unicode列中的數(shù)據(jù)。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

您需要查看這些,而不是重音字符,而是完全不同的字符。您也可以尋找a,b或c。話雖這么說,我會(huì)嘗試使用正則表達(dá)式。它看起來像:


SELECT * from TB_MOVIE WHERE MOVIE_NAME REGEXP '.*[aAàà].*' ORDER BY MOVIE_NAME;


查看完整回答
反對(duì) 回復(fù) 2019-09-03
  • 3 回答
  • 0 關(guān)注
  • 467 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)