當前位置:首頁 » 編程語言 » sql搜索

sql搜索

發布時間: 2022-01-10 06:23:27

sql中 如何搜索『關鍵詞』

select列1,列2,列3from表名wherenamelike'%關鍵詞%'

name like '%關鍵詞%' 表是 name包含"關鍵詞"3個字。%表示通配符,表示任何字元都適用。

a,like '關鍵詞%' 表示以關鍵詞開頭的內容

b,like '%關鍵詞' 表示以關鍵詞結尾的內容

c,like '關鍵詞' 等同於 ='關鍵詞' 的寫法,即name是關鍵詞的,你的寫法是這樣

d,like '%關鍵詞%麗%' 表示like可以包含多個%的通配符

② 怎樣在sql里實現中文搜索和模糊搜索

使用SQL 通配符可以替代一個或多個字元,即模糊查詢。
SQL 通配符必須與 LIKE 運算符一起使用。在 SQL 中,可使用以下通配符如下:
1、% 替代一個或多個字元
2、_ 僅替代一個字元
3、[charlist] 字元列中的任何單一字元

4、[^charlist]或者[!charlist] 不在字元列中的任何單一字元

以圖中表格為例,說明一下各通配符用法

1、 查詢居住在以 "Ne" 開始的城市裡的人:
SELECT * FROM Persons WHERE City LIKE 'Ne%'
2、查詢居住在包含 "lond" 的城市裡的人:
SELECT * FROM Persons WHERE City LIKE '%lond%'
3、查詢名字的第一個字元之後是 "eorge" 的人:
SELECT * FROM Persons WHERE FirstName LIKE '_eorge'
4、查詢記錄的姓氏以 "C" 開頭,然後是一個任意字元,然後是 "r",然後是任意字元,然後是 "er":
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'
5、查詢居住的城市以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
6、查詢居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'

③ sql模糊查詢

模糊查詢內容豐富,用起來靈活隨便。此處就寫出其基本內容。
1,% :表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。

比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'

將會把u_name為「張三」,「張貓三」、「三腳貓」,「唐三藏」等等有「三」的記錄全找出來。

另外,如果需要找出u_name中既有「三」又有「貓」的記錄,請使用and條件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%貓%'

若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%貓%'
雖然能搜索出「三腳貓」,但不能搜索出符合條件的「張貓三」。

2,_ : 表示任意單個字元。匹配單個任意字元,它常用來限製表達式的字元長度語句:

比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出「唐三藏」這樣u_name為三個字且中間一個字是「三」的;

再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';
只找出「三腳貓」這樣name為三個字且第一個字是「三」的;

3,[ ] :表示括弧內所列字元中的一個(類似正則表達式)。指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。

比如 SELECT * FROM [user] WHERE u_name LIKE '[張李王]三'
將找出「張三」、「李三」、「王三」(而不是「張李王三」);

如 [ ] 內有一系列字元(01234、abcde之類的)則可略寫為「0-4」、「a-e」
SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
將找出「老1」、「老2」、……、「老9」;

4,[^ ] :表示不在括弧所列之內的單個字元。其取值和 [] 相同,但它要求所匹配對象為指定字元以外的任一個字元。

比如 SELECT * FROM [user] WHERE u_name LIKE '[^張李王]三'
將找出不姓「張」、「李」、「王」的「趙三」、「孫三」等;

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
將排除「老1」到「老4」,尋找「老5」、「老6」、……

由於通配符的緣故,導致我們查詢特殊字元「%」、「_」、「[」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。

④ 如何用SQL語句全局搜索

可以通過where條件語句實現。
sql:select * from tablename where name like '張%' and id>5;
解釋:以上就是通過條件查詢出名字以張開始的,id大於5的表數據。
備註:多條件之間如果是同時滿足用and,如果是滿足其中一個用 or。

⑤ sql語句實現搜索

你可以先定義一個id,如int id=0;把變化的id的值保存在id裡面,再用查詢語句,select * from table where id='id'

⑥ SQL 怎麼實現模糊查詢

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

⑦ SQL搜索語句

沒明白你說的是什麼意思

如果你是想通過DropdownList來選擇你要搜索的條件值
SQL="select * from tabelName where salaryrange='" + DropdownList.selected.vaules + "'";

⑧ SQL搜索值

目前為止,資料庫還是處在有限集合運作方式。不可能達到數學模型那個級別。
提供兩種方式:那個好,自己琢磨,資料庫SQL2005下調試,一次執行,返回的都是4.
declare @tb table
(
id int identity(1,1),
QNum int
)
declare @tbS table
(
QNum int
)
insert into @tbS
select 1 union all
select 2 union all
select 3 union all
select 6 union all
select 7 union all
select 8 union all
select 10 union all
select 15 union all
select 22

declare @S int set @S=(select min(QNum) from @tbS)
declare @E int set @E=(select max(QNum) from @tbS)
declare @temp int set @temp=1
declare @end int set @end=@E

while @temp<@end
begin
insert into @tb(QNum) values (@temp);
set @temp=@temp+1;
end

select top 1 A.QNum as RetVal from @tb A left join @tbS B on(B.QNum=A.QNum)
where B.QNum is null
order by A.QNum

--以上是一種構建集合方式

--如下是一般的遍歷檢索
set @temp=1
while @temp<@end
begin
if not exists(select null from @tbS where QNum=@temp)
begin select @temp as RetVal break end
else
begin set @temp=@temp+1 end
end

⑨ SQL如何在搜索結果中再搜索

把搜索結果放到記錄集 Recordset 里,然後用記錄集的 Filter 屬性進行篩選。這樣做的好處是更改次要條件時不需要連接資料庫。如果沒這個需求,當然是按樓上的朋友說的做!

⑩ sql資料庫中檢索數據

這個可能復雜點,我有一個方案,
首先做一個自定義方法,然後進行查詢
-----自定義方法------
CREATE FUNCTION SplitStr (@splitString varchar(8000), @separate varchar(10))
RETURNS @returnTable table(col_Value varchar(20))
AS

BEGIN

declare @thisSplitStr varchar(20)
declare @thisSepIndex int
declare @lastSepIndex int

set @lastSepIndex = 0

if Right(@splitString ,len(@separate)) <> @separate set @splitString = @splitString + @separate
set @thisSepIndex = CharIndex(@separate,@splitString ,@lastSepIndex)

while @lastSepIndex <= @thisSepIndex
begin
set @thisSplitStr = SubString(@splitString ,@lastSepIndex,@thisSepIndex-@lastSepIndex)
set @lastSepIndex = @thisSepIndex + 1
set @thisSepIndex = CharIndex(@separate,@splitString ,@lastSepIndex)
insert into @returnTable values(@thisSplitStr)
end
return

END
---------測試語句--------

select * from
(
select 'a,b,c,a,d' as b
union all
select 'c,f,d,e,t'
union
select 'd,d,f,g,h'
) as a
where
(select COUNT(1)
from
dbo.SplitStr(b,',')
group by col_Value
having COUNT(1)>1)>0

--------查詢結果--------
a,b,c,a,d
d,d,f,g,h

熱點內容
櫻花伺服器測試ip 發布:2024-09-20 20:10:39 瀏覽:279
爐石傳說安卓怎麼玩 發布:2024-09-20 20:09:59 瀏覽:312
ios開會員為什麼比安卓貴 發布:2024-09-20 20:09:55 瀏覽:568
緩存伺服器redis 發布:2024-09-20 20:09:01 瀏覽:75
優酷上傳ts 發布:2024-09-20 19:55:58 瀏覽:273
minecraft怎麼開伺服器地址 發布:2024-09-20 19:52:14 瀏覽:651
android彈出布局 發布:2024-09-20 19:14:29 瀏覽:981
預演算法包括 發布:2024-09-20 18:52:07 瀏覽:764
什麼數字後面跟著密碼 發布:2024-09-20 18:52:07 瀏覽:878
訂座源碼 發布:2024-09-20 18:52:06 瀏覽:383