String sql = "select * from table where Name like '%"+keyword+"%'"
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來(lái)客戶和效益!成都創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)負(fù)責(zé)任的成都網(wǎng)站制作公司!
這個(gè)是拼接字符串 keyword是變量 可以在類里面定義成其他字符
String sql = "select * from table where Name like '%keyword%'";
這個(gè)只能是查找keyword不是變量 只是說(shuō)查找keyword字符串
String sql = "select * from table where Name like %keyword%";
而這個(gè)應(yīng)該會(huì)報(bào)錯(cuò)的 因?yàn)楸仨毤右?hào)
String sql = "select * from table where Name like '_keyword_'";
這個(gè)應(yīng)該也會(huì)有問題吧 因?yàn)開是匹配單個(gè)字符的
兩種方案:
(1)程序處理:首先在表1中選擇word,然后根據(jù)word使用like語(yǔ)句從表2中選擇需要的內(nèi)容:
給你對(duì)應(yīng)的sql語(yǔ)句:
select
distinct
word
from
表1
select
*
from
表2
where
word
like
''''
||
word1
||
'%'''
word1代表的是第一個(gè)sql的選擇結(jié)果,需要使用循環(huán)處理
(2)建立自己的存儲(chǔ)過程,這個(gè)寫需要時(shí)間,以后給你
用CONTAINS
將 sql+=" and a.ORDER_NAME =? ";
改為 sql+=" and CONTAINS(a.ORDER_NAME, '%' ||? || '%') ";
LIKE 直接在數(shù)據(jù)庫(kù)中查找可以查到所有所需數(shù)據(jù),但是會(huì)掃描整個(gè)表,影響性能。
CONTAINS是基于全文索引進(jìn)行查詢,查詢結(jié)果受全文索引分詞的方法影響,查詢結(jié)果會(huì)不全。
所以需要精確查詢用LIKE,內(nèi)容搜索用CONTAINS提高效率!
LZ自己決定。
通過正則表達(dá)式使用正則匹配可以用于實(shí)現(xiàn)基于文字標(biāo)題的模糊匹配。
正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法(英語(yǔ):Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列符合某個(gè)句法規(guī)則的字符串。在很多文本編輯器里,正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)模式的文本。
關(guān)于正則表達(dá)式,下面這個(gè)博客有詳細(xì)的介紹:
實(shí)現(xiàn)思路就是循環(huán)List對(duì)象,之后看每個(gè)對(duì)象中是否有包含的字符串,符合的就輸出:
List list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
for(int i=0;ilist.size();i++ ){
if(list.get(i).contains("li")){
System.out.println(list.get(i));
}
}
備注:list是有順序的,并且下標(biāo)從0開始。
你好,很高興回答你的問題。
問題的原因是拼接模糊查詢條件是有問題。仔細(xì)看下圖紅線標(biāo)識(shí)的位置,在百分號(hào)兩邊各加了一個(gè)單引號(hào)。這個(gè)是不需要的。
如果參數(shù)是通過setString方法賦值的,則在最終執(zhí)行的sql時(shí)會(huì)自動(dòng)拼接單引號(hào)的。這里加上單引號(hào)反而是錯(cuò)誤的了。
如果有幫助到你,請(qǐng)點(diǎn)擊采納。
我解答的大部分是軟件開發(fā)新人遇到的問題,如果有興趣可以關(guān)注我。