支援Oracle的模糊查詢和精準查詢

2022-01-15 06:20:54 字數 1153 閱讀 7683

相信所有的軟體開發者都做過頁面上的查詢功能,而且很多都需要既支援模糊查詢的,也需要支援精準查詢的,而且不需要增加多餘的功能,只需要在文字框中輸入包含類似*之類的符號即可。

下面的方法就是通過*來判斷到底是模糊查詢還是精準查詢,方法如下:

/// /// 通過輸入文字和欄位名稱來組織返回的查詢字串

///

/// input string

/// query field

///

public string querystring_by_querytype(string query_name, string query_field)

", "*");

//split the condition to be a array

string conditionlist = query_name.split('*').where(a=>!string.isnullorempty(a)).toarray();

if (conditionlist.length == 1)

if (!query_name.contains('*'))

else

if (!string.isnullorempty(query_string))

if (query_name.endswith("*"))}}

else if (conditionlist.length > 1)

query_string += "instr(" + query_field + ", '" + condition + "', -1) > 0";

}for (int i = 1; i < conditionlist.length; i++)

query_string += "instr(" + query_field + ",'" + conditionlist[i - 1] + "', -1) < instr(" + query_field + ",'" + conditionlist[i] + "', -1)";}}

}return query_string;

}

呼叫的時候只需要傳入文字和欄位名稱即可,程式會根據*來判斷到底該如何去組織查詢語句。

此方法只支援oracle的查詢,如果想要此方法支援sqlserver的查詢,只需要把oracle中的函式稍加修改即可。

Oracle 模糊查詢

在where子句中,可以對datetime char varchar欄位型別的列用like子句配合萬用字元選取那些 很像.的資料記錄,以下是可使用的萬用字元 零或者多個字元 單一任何字元 下劃線 特殊字元 在某一範圍內的字元,如 0 9 或者 aeth 不在某範圍內的字元,如 0 9 或者 aeth...

oracle 模糊查詢

oracle10g以上支援正規表示式的函式主要有下面四個 1,regexp like 與like的功能相似 2,regexp instr 與instr的功能相似 3,regexp substr 與substr的功能相似 4,regexp replace 與replace的功能相似 posix 正規表...

oracle模糊查詢

執行資料庫查詢時,有完整查詢和模糊查詢之分。一般模糊語句格式如下 select 字段 from 表 where 某欄位 like 條件 其中,關於條件,sql提供了四種匹配模式 1 表示零個或多個字元。可以匹配任意型別和任意長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select ...