SQL怎樣判斷欄位中是否存在某值

時間 2021-10-14 22:24:14

1樓:莘深潮朝

使用函式

charindex,第一個引數是你要查詢的字元,第二個引數是要在哪個字元中查詢

比如:select

charindex('1','123456')返回1所在的位置

2樓:匿名使用者

mysql 的myisam儲存引擎可以支援全文檢索,通常mysql的預設儲存引擎就是myisam,你可以把要查詢的欄位建立索引,不管你用什麼方法,查詢效率會有較大的提高

不推薦用 '%like%',因為索引的左匹配原則,它是不能使用索引的可以使用 in ,in 可以使用索引

如果你要精確查詢,可以建立反向索引

3樓:匿名使用者

如果你不想用like

1、事先把aa存到一個單獨的表裡。類似tag.tag和記錄的id對應。

2、用全文索引。

3、自己做分詞和全文索引。這個麻煩就大羅。

4樓:匿名使用者

instr(c1,c2,i,j)

在一個字串中搜尋指定的字元,返回發現指定的字元的位置;

c1 被搜尋的字串

c2 希望搜尋的字串

i 搜尋的開始位置,預設為1

j 出現的位置,預設為1

sql> select instr(’oracle traning’,’ra’,1,2) instring from dual;

instring

---------9

5樓:情誤肥羊

如果要想到用in的方法,肯定是將這個欄位的值給打散成一個陣列,可是沒有這樣的方法啊,再說了即使有,效率照樣低的可憐。

還不如用like來的好,

xx like 'aa,%' or xx like '%,aa' or xx like '%,aa,%'

6樓:匿名使用者

沒有辦法,你的這個問題我也碰到很多次,如果欄位內容完全是按你給出這樣aa,bb,cc,dd的,like 還是可以精確匹配的,因為有逗號分隔符,但是還有其他更復雜的情況,沒有明顯的分割,那就難辦了。對於你說的效率問題,即使有類似有in之類的方法,oracle內部本身也是需要一個一個去匹配的,效率不會有所提升,只是改變下sql的表達方法而已。其實這些值本來可以拆成一對多的關係

,哎,沒有辦法,表是人家很早就這樣設計的

7樓:淨利率

不知道我理解的對不對

我想了一下可以用oracle的函式:instr,後面附有用法select instr(欄位名,包含的內容, 1) from 你的表名 where instr(欄位名,包含的內容, 1) <> 0

這個可定行,我測試通過了,給分啊~~~

instr(c1,c2,i,j)

在一個字串中搜尋指定的字元,返回發現指定的字元的位置;

c1 被搜尋的字串

c2 希望搜尋的字串

i 搜尋的開始位置,預設為1

j 出現的位置,預設為1

sql> select instr(’oracle traning’,’ra’,1,2) instring from dual;

instring

---------9

8樓:賓士

按照你的要求只能用like。

like '%,%aa%,%';

---以上,希望對你有所幫助。

9樓:匿名使用者

欄位 like '%aa,%' or 欄位 like '%,aa%'

會比較精確

不用like會更麻煩

10樓:九冠

感覺用patindex函式比較好吧。

where patindex(欄位1,欄位2)>1(>1還是》0,忘掉了,你自己試試)

sql語句,怎樣判斷一個欄位中是否存在某一個值

11樓:匿名使用者

字元值:x

select ocunt(*) from tablenamewhere columnname = 'x'

結果為0,不存在

12樓:唐城冬

select * from 表名 where 欄位名=查詢的值

13樓:哈皮的小逗比

select * from 表 where 欄位 like '%查詢的值%'

sql語句,怎樣判斷一個欄位中是否存在某一個值

14樓:四舍**入

可以參考下面的描述:

instr(c1,c2,i,j)

在一個字串中搜尋指定的字元,返回發現指定的字元的位置;

c1 被搜尋的字串

c2 希望搜尋的字串

i 搜尋的開始位置,預設為1

j 出現的位置,預設為1

sql> select instr(’oracle traning’,’ra’,1,2) instring from dual;

instring

---------9

15樓:匿名使用者

使用函式 charindex,第一個引數是你要查詢的字元,第二個引數是要在哪個字元中查詢 比如: select charindex('1','123456') 返回1所在的位置

16樓:匿名使用者

like 不就可以麼

select count(*) from tablename where colname like '%值%'

17樓:闕煥鄞琪

寫法如下:

select

*from

mytable

where

field

like

'%查詢的值%'

具體替換表名和欄位名

sql語句,怎樣判斷一個欄位中是否存在某一個值

18樓:繞到夢魂深處

寫法如下: select * from mytable where field like '%查詢的值%'

具體替換表名和欄位名

19樓:匿名使用者

sql不是有instr函式麼?

instr('abcdefghiabc', 'def') ⇒ 4

沒查到會返回0

sql 如何判斷表中的某個欄位是否有某個值 15

20樓:匿名使用者

select  case when aaaa like'%1%' then '1' else '0' end

from table

21樓:匿名使用者

方法一:

select replace(欄位名bai,'e','考察')replace意思:如果取得du欄位值是e則替換為zhi"考察"

方法dao二

select decode(columnname,值1,翻譯內值1,值2,翻譯值2,...值n,翻譯值n,預設容值

22樓:我是你謙

charindex sql 內建函式,用法如下:

select top 5 substring(contactname,charindex(' ',contactname)+1,len(contactname)) as [last name] from customers charindex函式找到first name和last name之間的空格,所以substring函式可以分開contactname列,這樣就只有回last name被選出。答在charindex函式返回的整數上加1,這樣last name不是從空格開始。

23樓:意由不得你

select count(1) from table where aaaa=1

if(sql>0)else

24樓:kevin菸圈

是包含1還是等於1

包含1 和話

$sql = "select * from table where aaaa like '%1%'";

如果查到輸出

專1 否則屬輸出0

包含等於 1和話

$sql = "select * from table where aaaa = '1' ";

如果查到輸出1 否則輸出0

sql檢視一張表中某個欄位是否存在??怎麼寫啊

25樓:匿名使用者

什麼資料庫,,,

sqlserver如下:

select 1

from sysobjects t1 inner join syscolumns t2 on t1.id=t2.id

where t1.name='表名'

and t1.xtype='u'

and t2.name=‘列明’

有資料就有

26樓:匿名使用者

select * from user_tab_columns t where t.table_name=表名 and t.column_name =欄位;

欄位和表名都是大寫哦

27樓:匿名使用者

select * from table where column is not null

28樓:慕刓辭

select * from 表名 where=‘條件(欄位)’

如何用sql 語法判斷,某一欄位在表中是否存在

29樓:一顆程式猿

sqlserver的話:

if exists(select 1 from [sys].[columns] where [name]='列名' and [object_id]=object_id('表名'))

print 'yes'

else

print 'no'

Sql查詢表中除了某個欄位以外的所有欄位的方法

select name from syscolumns where id select max id from sysobjects where xtype u and name 表名 然後去查不等於column1的值不就ok了 方法就這樣了,具體你自己寫去吧 有是有,不過要通過系統表來差,而且語句...

如何在sql server中判斷某欄位中重複出現某字元多次

夕夜問情 1 利用len函式 declare a varchar 20 set a adfarghbaaf select len a len replace a,a 2 自定義一個函式 create function fn str times str varchar 1000 原子符串 indexs...

sql中查詢多個欄位時,group by 要怎麼使用

惠惠 你根據到貨地點order by排序即可,不需要group by。sql語言,是結構化查詢語言 structured query language 的簡稱。sql語言是一種資料庫查詢和程式設計語言,用於存取資料以及查詢 更新和管理關聯式資料庫系統,同時也是資料庫指令碼檔案的副檔名。sql語言是高...