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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Oracle中進(jìn)行不區(qū)分大小寫的搜索

在Oracle中進(jìn)行不區(qū)分大小寫的搜索

暮色呼如 2019-07-29 16:04:41
在Oracle中進(jìn)行不區(qū)分大小寫的搜索LIKE和其他比較運算符=等的默認(rèn)行為區(qū)分大小寫。是否有可能使它們不區(qū)分大小寫?
查看完整描述

3 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊

在不使用全文索引的情況下,有三種主要方法可以在Oracle中執(zhí)行不區(qū)分大小寫的搜索。

最終,您選擇的方法取決于您的個人情況; 要記住的主要事情是,為了提高性能,您必須正確索引以進(jìn)行不區(qū)分大小寫的搜索。

1.對你的專欄和你的字符串進(jìn)行相同的處理。

您可以使用UPPER()或強制所有數(shù)據(jù)都是相同的大小寫LOWER()

select * from my_table where upper(column_1) = upper('my_string');

要么

select * from my_table where lower(column_1) = lower('my_string');

如果column_1未編入索引,upper(column_1)或者lower(column_1)視情況而定,則可能會強制進(jìn)行全表掃描。為了避免這種情況,您可以創(chuàng)建基于函數(shù)的索引。

create index my_index on my_table ( lower(column_1) );

如果你正在使用LIKE,那么你必須連接%你正在搜索的字符串。

select * from my_table where lower(column_1) LIKE lower('my_string') || '%';

這個SQL小提琴演示了所有這些查詢中發(fā)生的事情。請注意解釋計劃,它指示何時使用索引以及何時使用索引。

2.使用正則表達(dá)式。

從Oracle 10g起REGEXP_LIKE()可用。您可以指定_match_parameter_ 'i',以便執(zhí)行不區(qū)分大小寫的搜索。

要將此作為相等運算符使用,必須指定字符串的開頭和結(jié)尾,用克拉和美元符號表示。

select * from my_table where regexp_like(column_1, '^my_string$', 'i');

為了執(zhí)行LIKE的等效,可以刪除這些。

select * from my_table where regexp_like(column_1, 'my_string', 'i');

請注意這一點,因為您的字符串可能包含正則表達(dá)式引擎將以不同方式解釋的字符。

除了使用REGEXP_LIKE()之外,此SQL Fiddle顯示相同的示例輸出。

3.在會話級別更改它。

所述NLS_SORT參數(shù)控制訂購歸類序列和各種比較運算符,包括=和類似物。您可以通過更改會話來指定二進(jìn)制,不區(qū)分大小寫,排序。這意味著在該會話中執(zhí)行的每個查詢都將執(zhí)行不區(qū)分大小寫的參數(shù)。

alter session set nls_sort=BINARY_CI

如果您想指定不同的語言,或者使用BINARY_AI進(jìn)行重音不敏感搜索,那么有很多關(guān)于語言排序和字符串搜索的附加信息。

您還需要更改NLS_COMP參數(shù); 報價:

遵循NLS_SORT參數(shù)的確切運算符和查詢子句取決于NLS_COMP參數(shù)的值。如果運算符或子句不遵循由NLS_COMP確定的NLS_SORT值,則使用的排序規(guī)則是BINARY。

NLS_COMP的默認(rèn)值是BINARY; 但是,LINGUISTIC指定Oracle應(yīng)該注意NLS_SORT的值:

WHERE子句和PL / SQL塊中所有SQL操作的比較應(yīng)使用NLS_SORT參數(shù)中指定的語言排序。要提高性能,您還可以在要進(jìn)行語言比較的列上定義語言索引。

所以,再一次,你需要改變會話

alter session set nls_comp=LINGUISTIC

如文檔中所述,您可能需要創(chuàng)建語言索引以提高性能

create index my_linguistc_index on my_table 
   (NLSSORT(column_1, 'NLS_SORT = BINARY_CI'));


查看完整回答
反對 回復(fù) 2019-07-29
?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊

也許你可以嘗試使用

SELECT user_nameFROM user_masterWHERE upper(user_name) LIKE '%ME%'


查看完整回答
反對 回復(fù) 2019-07-29
  • 3 回答
  • 0 關(guān)注
  • 1413 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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