麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

在SQL Server 2005所有表中搜索某個(gè)指定列的方法

2024-08-31 01:04:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

有時(shí)候我們只知道列的名字,但是不知道這列數(shù)據(jù)到底在哪個(gè)表里面,那么可以用下面的辦法把含有這列數(shù)據(jù)的表查找出來(lái)。

復(fù)制代碼 代碼如下:

Select O.name objectName, C.name ColumnName from sys.columns C inner join sys.objects O ON C.object_id=O.object_id where C.name like '%ColumnName%'order by O.name, C.name

 
在你實(shí)際試用中,把ColumnName換成你要查的列的名字就可以了。

 

字符串在某字段里時(shí),如何寫(xiě)搜索的SQL語(yǔ)句

問(wèn)題描述:

經(jīng)常遇到這種問(wèn)題,我們搜索的條件是某字符串包含在某字段,如果是某字段包含在某字符串,我們知道可以用in,

如sql="select * form tb where tb.name in(" & names & " )”  

注釋?zhuān)簄ame是表tb的字段,name是獲得的字符串,該句查詢(xún)字段name在給的字符串names里的所有集合)

這種方法自然不必多說(shuō),但我們通常遇到的問(wèn)題是“反著來(lái)”,即  "name"字符串 在 tb.name表字段里,如,表tb的name字段值為:張三,李四,王五,趙六

而我們要查詢(xún)的name=張三,這就要判斷當(dāng)表的name字段包含查詢(xún)條件,也就是有“張三”時(shí),即為符合查詢(xún)

解決方法:

1、最先想到的當(dāng)然是like查詢(xún)(并非終極解決方案,終極方法繼續(xù)往下看)

如sql="select * form tb where tb.name  like  '%" & 張三 & "%' ” 

解釋一下,這個(gè)語(yǔ)句,能查詢(xún)到所有表的name字段里有”張三“的集合,可是,假設(shè)有人的名字叫”秦張三八“,他的名字不管爹媽怎么取的,總之也有”張三“兩個(gè)字,這樣很顯然也符合查詢(xún)情況,那么他自然也會(huì)被查詢(xún)出來(lái),而我們只要”張三“,不要”秦張三八“,看下一步

2、試想一下,如果字段里的值不是“張三,李四,王五,趙六”,而是“,張三,李四,王五,趙六,”

發(fā)現(xiàn)什么了?

是的,字符串前后多了個(gè)逗號(hào),這就有用了,因?yàn)槎禾?hào)可以作為限制條件,如果“秦張三八”此時(shí)也在這個(gè)字段里,他的前后也有逗號(hào),這樣按逗號(hào)來(lái)控制查詢(xún),就精確到位了

好了,改寫(xiě)查詢(xún)成:sql="select * form tb where tb.name  like  '%," & 張三 & ",%' ”

到此,原理和解決方法就已經(jīng)全部說(shuō)完了,但是,你可能還會(huì)遇到以下問(wèn)題,繼續(xù)看第三步。

3、有時(shí)類(lèi)似這種帶逗號(hào)的字段都是我們?cè)诒4娴臅r(shí)候勾選了多選check得來(lái)的值,這時(shí)寫(xiě)入數(shù)據(jù)庫(kù)的時(shí)候,會(huì)自動(dòng)在不同的check值后加上逗號(hào),

比如,請(qǐng)選擇你的興趣愛(ài)好,你可能會(huì)勾選“看書(shū)(value=1)”,“聽(tīng)歌(value=21)”,“爬山(value=13)”

此時(shí)得到的值就是xingquaihao="1, 21, 13",將這個(gè)字段保存,在數(shù)據(jù)庫(kù)里也就是這種格式,但是此時(shí)如果直接按照上面的查詢(xún)方式來(lái)查詢(xún)的話,

直接用:sql="select * form tb where xingquaihao  like  '%" & 1 & "%' ”   將得到所有含1的,就算是21、13中的1,也會(huì)被查出來(lái)

將字段前后加上逗號(hào),變成“,1, 21, 13,”的時(shí)候,如果我們查21或者13,改成:sql="select * form tb where xingquaihao  like  '%," & 21 & ",%' ” 結(jié)果是什么都查不出來(lái)

為什么明明有值,卻查不出來(lái)呢?

因?yàn)樽詣?dòng)勾選,然后保存的字段中間有空格,比如“1, 21, 13”,1的后面是一個(gè)逗號(hào),逗號(hào)后面是一個(gè)空格,然后才是21

解決方法很簡(jiǎn)單了,在勾選完后,入庫(kù)前把空格去掉,

xingquaihao="1, 21, 13"

xingquaihao=replace(xingquaihao," ","") '將空格刪除

如此得到的就是緊湊型的值了,再按照上面的方法查詢(xún),搞定!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MSSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 视频毛片 | 欧美亚洲国产一区 | 免费a级毛片大学生免费观看 | 免费在线成人网 | 中文字幕网址 | 国产亚洲精品久久久久久久 | 欧美一区二区三区中文字幕 | 国产成人综合在线观看 | 精品亚洲成a人在线观看 | lutube成人福利在线观看污 | 亚洲精品欧美在线 | 亚洲白嫩在线观看 | 青青草成人免费视频在线 | 中文字幕在线观看1 | 国产一级在线免费观看 | 国产外围在线 | 精品在线视频观看 | 久久国产精品一区 | 一级免费在线视频 | 韩毛片 | 日本a级一区 | 国产免费观看a大片的网站 欧美成人一级 | 日本看片一区二区三区高清 | 国产精品99久久久久久久 | 成人做爰高潮片免费视频韩国 | 日韩黄色一级视频 | av成人免费观看 | 亚洲av一级毛片特黄大片 | 欧美日韩在线中文字幕 | 欧美日穴视频 | 国产污污视频 | 免费a级毛片大学生免费观看 | 久久精品视频亚洲 | 中文字幕涩涩久久乱小说 | 色999中文字幕 | 在线成人影视 | 欧美日韩爱爱视频 | 免费毛片视频播放 | 日本精品视频一区二区三区四区 | 欧美黄色一级片在线观看 | 一级黄色淫片 |