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語言是高...