文中,abigale代表查詢字符串,ada代表數據表名,alice代表字段名。
技巧一:
問題類型:ACCESS數據庫字段中含有日文片假名或其它不明字符時查詢會提示內存溢出。
解決方法:修改查詢語句
sql="select * from ada where alice like '%"&abigale&"%'"
改為
sql="select * from ada"
rs.filter = "alice like '%"&abigale&"%'"
技巧二:
問題類型:如何用簡易的辦法實現類似百度的多關鍵詞查詢(多關鍵詞用空格或其它符號間隔)。
解決方法:
'//用空格分割查詢字符串
ck=split(abigale," ")
'//得到分割后的數量
sck=UBound(ck)
sql="select * ada where"
在一個字段中查詢
For i = 0 To sck
SQL = SQL & tempJoinWord & "(" & _
"alice like '"&ck(i)&"%')"
tempJoinWord = " and "
Next
在二個字段中同時查詢
For i = 0 To sck
SQL = SQL & tempJoinWord & "(" & _
"alice like '"&ck(i)&"%' or " & _
"alice1 like '"&ck(i)&"%')"
tempJoinabigale = " and "
Next
技巧三:提高查詢效率的幾種技巧
1. 盡量不要使用 or,使用or會引起全表掃描,將大大降低查詢效率。
2. 經過實踐驗證,charindex()并不比前面加%的like更能提高查詢效率,并且charindex()會使索引失去作用(指sqlserver數據庫)
3. alice like '%"&abigale&"%' 會使索引不起作用
like '"&abigale&"%' 會使索引起作用(去掉前面的%符號)
(指sqlserver數據庫)
新聞熱點
疑難解答