① 如何實現sql的多條件模糊查詢
不知道我是否理解了你的意思。
由於不知道頁面會傳來多少個「問題」,你只能去手動拼接sql語句了。比如頁面穿來了n個"問題「。
你只能去遍歷,比如」問題"的name值為"answer",在前台你可以處理下,把所有的answer以逗號分割,比如"answer1,answer2..."
String answer[]=request.getParameter("anser").split(",")
String answerVal[]=request.getParameter("answerVal").split(",")
StringBuilder sb=new StringBuilder();
sb.append("select * from table where ")
for(int i=0,l=answer.length;i<l;i++){
sb.append(answer[i]+ " like '%"+answerVal[i]+"' and ");
}
sb.append(" 1=1 ")
String sql=sb.toString()
//execute query
這段代碼不完整,會有點問題 但思路是這樣的。還有 別直接這么寫,建議用prepareStatement,否則會存在SQL注入。懂思想即可。
② sql多條件模糊查詢
不才,只會這個辦法,這個方法好像會造成全表掃描,效率不好
③ sql如何實現多條件模糊查詢
這個很簡單啊
④ SQL語句where多條件查詢怎麼寫
工具/材料:以Management Studio為例。
1、首先在桌面上,點擊「Management Studio」圖標。
⑤ 多表中多欄位模糊查詢 SQL 語句寫法
select
distinct
t.編號
from
((select
編號,公司,單號,
訂單號
,日期,null
as
物品名稱,null
as
規格,null
as
數量,null
as
單價
from
a)union
all(select
表頭
,null,null,null,null,物品名稱,規格,數量,單價
from
b))t
where
t.公司
like
'%變數%'
⑥ 請教SQL語句實現多條件模糊查詢比較好的寫法
name=Request.QueryString("name") 』姓名
sex=Request.QueryString("sex") 』性別
call=Request.QueryString("call") 』電話
Sql= "Select * from 表名 where 1=1" 』1=1 避免所有查詢欄位為空時出錯
if name <>"" then
Sql= Sql & "and 姓名 like 』%"& name &"%』"
end if
if sex <>"" then
Sql= Sql & "and 性別 = 』"& sex &"』" 』這個不是模糊查詢了
end if
if call <>"" then
Sql= Sql & "and 電話 like 』%"& call &"%』"
end if
if request.form("name")="" and request.form("sex")="" and request.form("call")="" then
response.write("請輸入查詢條件(可模糊查詢)")
response.end
end if
⑦ 如何實現SQL的多條件模糊查詢
你傳過來的格式是固定的,如果你用拼SQL的方式來查詢的話那麼用
字元串的replace一次性將格式轉化成like 『 的格式就行了。
如果用存儲過程的話,做一個參數是XML類型的存儲過程,直接將這些條件以XML的格式傳進去就行了,也很方便
⑧ sql語句查詢,多欄位like模糊查詢優化
1、多欄位like模糊查詢優化:
最常見的寫法:
where a like '%xx%' or b like '%xx%' or c like '%xx%';
這種寫法查詢效率低,經過調查,下面的方法可以替代,並且效率高:
2、如果like的關鍵字相同:
where instr(nvl(a, '')||nvl(b,'')||nvl(c,''), 'xx') > 0
把要模糊查詢的欄位先拼接起來,拼接時需要把null轉成『』,否則只要有一個欄位值是空,整個拼接的字元串都成空了, 然後用instr 函數去過濾;
3、如果like的關鍵字不同:
where instr(a, 'xx') > 0 or instr(b, 'yy') > 0 or instr(c, 'zz') > 0
經過測試,這兩種方法都比like效率要高;