『壹』 sql模糊篩選(多個關鍵字)
sql里
like和in都是關鍵字,
like裡面不能嵌套in,同樣的in裡面也不能嵌套like
多關鍵字模糊查詢只能用or直接連接
『貳』 sql如何實現單表多關鍵字模糊查詢,在線等
你可以限定一一個字元串
string sql='select * from tb where '
for(數組循環取值)
{
sql=sql+"title like '%"+數組值+"%' or";
}
然後處理掉sql最後的or,用;替代即可
為確保sql語句正確,加一句system.out.println(sql);輸出到控制台看看sql語句是否正確
記得如果你是說滿足數據中任意一個元素即可那就不能用and,因為你是滿足其中一個即可
『叄』 SQL語句中,如何同時模糊查詢多個字元串
把這些姓插入到一個新表中
比如 表:A
name
張
李
。。。
select姓名.*from姓名,Awhere姓名.namelikeA.name+'%'
『肆』 sql語句進行模糊查詢時如何同時用一句話篩選多個關鍵詞
你自己都說了,使用模糊查詢就可以彎吵敏了。
如果是查詢zlyt中含有b或f可以這樣寫:
select
*
from
表名
where
zlyt
like
'%b%'
or
zlyt
like
'%f%'
如埋枝果是查詢zlyt中含有b和f可以這樣寫:
select
*
from
表名
where
zlyt
like
'%b%f%'
or
zlyt
like
'%f%b%';
不同的碰豎是先後順序,根據你的情況自己可能需要調整
更新:
update
表名
set
欄位名
=
修改後的新值
where
zlyt
like
'%b%'
or
zlyt
like
'%f%';
where條件可以參考上面select中where條件的寫法,看你要匹配的規則。
『伍』 SQL多個關鍵字模糊查詢(同一欄位中)如何讓盡量多的關鍵字相匹配的搜索結果在前面
你用什麼匹配的語法呢?
where a like '%1%' or a like '%2%' or a like '%3%'
這樣?
那就這樣,舉個例子:
order by
case when a like '%1%' and a like '%2%' and a like '%3%' then 1
when a like '%1%' and a like '%2%'
or a like '%1%' and a like '%3%'
or a like '%2%' and a like '%3%' then 2
when a like '%1%' or a like '%2%' or a like '%3%' then 3
end
『陸』 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效率要高;
『柒』 SQL多個關鍵字模糊查詢(同一欄位中)如何讓盡量多的關鍵字相匹配的搜索結果在前面
思路:
我的感覺是、google是用的頁面後台代碼解析字元串,構造SQL語句條件部分,最後傳遞給底層與資料庫連接的部分
用or like '%keyword%'來查詢
規搜索引擎是關鍵字中無空格就構造where aa like '%keyword%'
有空格出現就對字元串拆分,構造語句,後面的全用or like '%keyword%'
LZ試試在查詢%是沒有結果的
用諸如:%abc查出來的結果是忽略%號的
在SQL中用@name傳參數的話,不許要對SQL關鍵字屏蔽,唯一的解釋就是對字元串構造後組成的SQL語句
同時用這樣的方法,對多參數的處理更容易
『捌』 sql語句進行模糊查詢時如何同時用一句話篩選多個關鍵詞
1、創建測試表,create table test_a(zlyt varchar2(20));
(8)sql語句模糊匹配多個詞擴展閱讀
1、在進行資料庫查詢時,有完整查詢和模糊查詢之分。
一般模糊查詢語句如下:SELECT 欄位 FROM 表 WHERE 某欄位 Like 條件,其中關於條件,SQL提供了四種匹配模式:
1)% :表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。
2)_ : 表示任意單個字元。匹配單個任意字元,它常用來限製表達式的字元長度語句:
3)[ ] :表示括弧內所列字元中的一個(類似正則表達式)。指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。
4)[^ ] :表示不在括弧所列之內的單個字元。其取值和 [] 相同,但它要求所匹配對象為指定字元以外的任一個字元。
2、REPLACE官方語法:
REPLACE ( string_expression , string_pattern , string_replacement )
1)參數含義:
string_expression 要搜索的字元串表達式。string_expression 可以是字元或二進制數據類型。
string_pattern 是要查找的子字元串。string_pattern 可以是字元或二進制數據類型。string_pattern 不能是空字元串 ('')。
string_replacement 替換字元串。string_replacement 可以是字元或二進制數據類型。
2)返回類型:
如果其中的一個輸入參數數據類型為 nvarchar,則返回 nvarchar;否則 REPLACE 返回 varchar。
如果任何一個參數為 NULL,則返回 NULL。
REPLACE(String,from_str,to_str) 即:將String中所有出現的from_str替換為to_str。
『玖』 請教一下關於sql server中模糊匹配欄位(如like '%'),如果想模糊匹配多種字元,應該怎麼做
欄位1 like '%12[1-9]%'可以簡化碰殲
欄位1 like '%121%' or 欄位1 like '%122%' or 。。笑斗沖。到 欄位1 like '%129%'
如果從%121%到%180%,可以用
欄位1 like '%1[2-7][1-9]%' or 欄位1 like '%180%'
其銷缺它情況的話找出規律,可以簡化,不一定要一個like搞定
希望能給你啟發
『拾』 SQL中可以實現多個關鍵詞匹配的搜索功能嗎
explode把用戶輸入的關鍵詞拆分成數組,然後$str = implode("%' or like '%",array);
然後$sql = "select * from table where name like '%".$str."%'";
當然你explode之前要先處理返回的關鍵詞字元串,去掉多餘的空格和符號