SQL怎麼實現模糊查詢,請問如何在SQL語句中實現模糊查詢?

時間 2021-10-14 19:03:23

1樓:灩麗

1、首先需要開啟資料庫管理工具,開啟sql語言編寫窗體。

2、如果我們知道某欄位的開頭部分,我們可以用 like 『xx%' select top 10 * from ck_ate where model like 'psm24w%'。

3、如果我們知道某欄位的中間部分,可以使用 like 『%xx%』select top 10 * from ck_ate where model like '%24w%'。

4、如果我們知道某欄位的結尾部分,我們庫使用 like '%xx'select top 10 * from ck_ate where model like '%-r-fa1'。

6、 模糊查詢可能涉及比較大的資料量,為避免查詢時把資料庫資源耗盡,我們加上一些限制條件  比如 前10行  top 10。

2樓:

sql可以用like關鍵字和%萬用字元進行模糊查詢:

1、用sql語句查詢出某個欄位包含「法律」的所有記錄。

select * from table where col1 like '%法律%';

2、用sql語句查詢出某個欄位包含變數字元資訊的所有記錄。

declare @test varchar(20);  --sql中聲名一個test變數

set @test='法律';  --變數賦值

select * from table where col1 like '%'+@test+'%'; --查詢欄位包含「法律」的資訊

3、使用者輸入的變數,可以通過sql儲存過程傳入引數進行查詢。

create proc

p_test

@test char(20)  --入參,使用者輸入的變數

asselect *from table where col1 like '%'+@test+'%'

3樓:匿名使用者

sql模糊查詢的語法為

「select column from table where column like 'pattern'」。

sql提供了四種匹配模式:

1. % 表示任意0個或多個字元。如下語句:

select * from user where name like '%三%'

將會把name為「張三」,「三腳貓」,「唐三藏」等等有「三」的全找出來;

2. _ 表示任意單個字元。語句:

select * from user where name like '_三_'

只找出「唐三藏」這樣name為三個字且中間一個字是「三」的;

select * from user where name like '三__'

只找出「三腳貓」這樣name為三個字且第一個字是「三」的;

3. [ ] 表示括號內所列字元中的一個(類似與正規表示式)。語句:

select * from user where name like '[張李王]三'

將找出「張三」、「李三」、「王三」(而不是「張李王三」);

如 [ ] 內有一系列字元(01234、abcde之類的)則可略寫為「0-4」、「a-e」

select * from user where name like '老[1-9]'

將找出「老1」、「老2」、……、「老9」;

如要找「-」字元請將其放在首位:'張三[-1-9]'

4. [^ ] 表示不在括號所列之內的單個字元。語句:

select * from user where name like '[^張李王]三'

將找出不姓「張」、「李」、「王」的「趙三」、「孫三」等;

select * from user where name like '老[^1-4]'

將排除「老1」到「老4」尋找「老5」、「老6」、……、「老9」。

!最後是重點!

由於萬用字元的緣故,導致我們查詢特殊字元「%」、「_」、「[」、「'」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。據此我們寫出以下函式:

function sqlencode(str)

str=replace(str,"'","''")

str=replace(str,"[","[") '此句一定要在最先

str=replace(str,"_","[_]")

str=replace(str,"%","[%]")

sqlencode=str

end function

在查詢前將待查字串先經該函式處理即可

4樓:資料大叔

sql 萬用字元可用於替代字串中的任何其他字元。在 sql 中,萬用字元與 sql like 操作符一起使用,用於搜尋表中的資料。

from 樹懶學堂

以本題為例,可以用:select * from table where [列名] like '法律%';

5樓:

比如str1是存放使用者輸入內容的變數

select * from where 欄位名 like '%"+str1+"%';

6樓:

例如:如果是變數:

如果不是變數:

sql="select * from users where username like '%"名稱"%'"

你能明白嗎?

7樓:匿名使用者

select * from where 欄位名='%法律%';

8樓:匿名使用者

法律*或者用like關鍵字。

請問如何在sql語句中實現模糊查詢?

9樓:匿名使用者

這是查詢tname中包含

你 的數

據select * from _teacher where tname like %你%

這是查詢tname中包含 以你開頭版 的數權據select * from _teacher where tname like 你%

這是查詢tname中包含 以你結尾 的資料select * from _teacher where tname like %你

caccess 模糊查詢sql語句

禹希初 select from table where 日期和時間 like 2007 應改為 select from table where 日期和時間 like 2007 注意,由於你用的是oledb驅動程式,在這裡 不能用 必須用 如果你用的是dao訪問access資料庫,則必須用 祝你好運!...

sql查詢結果如何自動換行,SQL查詢分析器能不能自動換行

可以在sql語句中加換行符chr 10 實現,比如欄位a長度為150,sql可以這麼寫 select substr t.a,0,100 char 10 substr t.a,101,len t.a from table t 或者你也可以將內容複製出來,放入一個自動換行的記事本,儲存之後就是換行後的結...

sql語句如何忽略大小寫,如何在SQL模糊查詢中忽略對大小寫字元的處理

那是自然查詢不出來結果的,sql不區分大小寫是針對語法來說的,不是針對值。如果針對值,你可以在程式中傳值時變成全小寫或全大寫,然後對應使用where lower keyword like shoes 或 where upper keyword like shoes 來進行模糊查詢 如果是mysql就...