SQL insert帶where條件的插入語句的問題

2022-03-07 03:10:03 字數 5501 閱讀 8274

1樓:匿名使用者

你的sql語句是錯誤的.

你是想如果mid欄位不是aa的話,就插入一條mid=aa的記錄.

那麼,你可以用內聯處理這個問題.

試試這樣寫:

if noexists (select * from table1 where mid='aa')

insert into table1(mid,name,msg) values('aa','bb','cc')

2樓:

if exists (select * from table1 where mid='aa')

insert into table1(mid,name,msg) values('aa','bb','cc')

即可你說的那個好象不行

3樓:narvik小紅帽

你那個不行,應該這樣

if (select count(*) from table1 where mid = 'aa') = 0)

insert into table1(mid,name,msg) values('aa','bb','cc')

4樓:孟德

要那麼麻煩幹嘛,直接在mid列上加唯一索引不就行了

如何給insert into語句加where條件

5樓:匿名使用者

insert into table_name values() 這個語句是不能做判斷的,

但可以建議你下面的語法實現:

if not exists(select * from table_name where filed1 = 1 )

then

insert into table_name values(1);

insert語句不能帶where,因為帶where的insert語句性質已經不再是insert,應該歸屬於update範疇了,所以,用update語句。

6樓:林辰

你好,where條件是針對你要插入的表的,有什麼條件可以直接在後面新增where。

7樓:陽光小天使樂園

insert into table_name values() 這個語句是不能做判斷的,但可以建議你下面的語法實現: if not exists(select * from table_name where filed1 = 1 ) then insert into table_name values(1); 或者將你要插入的資料先寫入臨時表,然後用 inse...

8樓:手機使用者

你的意思是不是,如果滿足條件就修改,不滿足就新增?

這樣可以使用 replace into

sql語句中的insert插入資料時可以用where嗎?

9樓:匿名使用者

insert中不能使用where關鍵字。

10樓:匿名使用者

可以insert into 表名(, , , ,)select *from 表名 where條件表示式

11樓:仰望天空_李平

這個真不可以,刪除、修改、查詢才可以使用where

12樓:匿名使用者

語法上不支援 insert into table values(...) where ... 這種用法

至於 insert into select * from table where ... 這種用法主要是用來複製表

insert帶where條件的語句怎麼寫,就是當id為某個值時,增加資料

13樓:匿名使用者

你要的是帶條件判斷的多條插入吧?!

格式如下:

invsert 表1(欄位1,欄位2)

select 值1,值2 from 表2 where 條件

14樓:你以為你以為

先查出來,在插入吧。

肯定需要兩步操作,

sql insert語句加入條件判斷怎麼寫

15樓:匿名使用者

---不知道你說的是哪種情況,我理解的有2種,1是對插入源進行過濾,2是對插入的某些值作判斷,是某個特定值時轉換成另乙個值

--情況1:使用insert into select語法實現

--通過拼接結果集作為select資料來源之後可以加where條件

insert into yourtable (id,name,status,remark)

select id,name,status,remark from (

select 1 as id,'張三' as name,'在職' as status,'沒有備註' as remark union select 2,'李四','離職',''

) as s where id>2 and id<5--條件

--情況2:給插入值作特殊判斷

insert into yourtable (id,name,status,remark)

select id,name,case when status='在職' then 1 when  status='離職' then 2 else 0 end,remark from (

select 1 as id,'張三' as name,'在職' as status,'沒有備註' as remark union select 2,'李四','離職',''

) as s

關於insert into 裡,帶條件判斷的sql語句怎麼寫?

16樓:四捨**入

1、方法一

if not exists(select * from table_name where filed1 = 1 ) then

insert into table_name values(1

2、將要插入的資料先寫入臨時表,然後用

insert into table_name

select * from #temp_table a left join table_name on a.filed1 = b.field1 where

b.filed1 is null

擴充套件資料:

基本語句

1、資料記錄篩選:

sql="select * from 資料表 where欄位名 = 字段值 order by 欄位名[desc]"(按某個字段值降序排列,預設公升序asc)。

sql="select * from 資料表 where 欄位名 like '%字段值%' order by 欄位名 [desc]"

sql="select top 10 * from 資料表 where欄位名=字段值 order by 欄位名 [desc]"

sql="select * from 資料表 where欄位名 in ('值1','值2','值3')"

sql="select * from 資料表 where 欄位名 between 值1 and 值2"

sql="select 列名1,列名2 from 資料表 where 欄位名=字段值 group by 列名1,列名2 " (group by 用來分組,並且只有出現自group by 中的列名,才允許出現在select 語句中)。

2、更新資料記錄:

sql="update 資料表 set欄位名=字段值 where 條件表示式"

sql="update 資料表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n where 條件表示式"

3、刪除資料記錄:

sql="delete from 資料表 where 條件表示式"

sql="delete from 資料表" (將資料表所有記錄刪除)

17樓:

insert into table_name values() 這個語句是不能做判斷的,但可以建議你下面的語法實現:

if not exists(select * from table_name where filed1 = 1 ) then

insert into table_name values(1);

或者將你要插入的資料先寫入臨時表,然後用

insert into table_nameselect * from #temp_table a left join table_name on a.filed1 = b.field1 where b.

filed1 is null

18樓:匿名使用者

if not exists(select * from t where field1=插入值)// 判斷插入值是否不存在,不存在則執行插入

begin

insert into t(field1)values(插入值)end

19樓:釗悌

方法1:把field1設定為唯一列就可以。

方法2:如果非要用sql語句來寫的話,給個例子,看能否滿足樓主要求:

--語句 (@a為新值)

insert into t select @a where @a not in(select field1 from t);

***********************************===

案例:create table tt(c1 int);

insert into tt values(1);

insert into tt values(2);

--測試1

insert into tt select 4 where 4 not in(select c1 from tt);

(1 行受影響)

--測試2

insert into tt select 2 where 2 not in(select c1 from tt);

(0 行受影響)

20樓:

如果操作頻繁,倒不如加個觸發器

create trigger [dbo].[t_trigger_feild1_ins] on [dbo].[t]

instead of insert

asdeclare @field1value varchar(500)

select @field1value=field1 from inserted

if not exists(select * from t where field1=@field1value)

begin

insert into t(field1) values(@field1value)end

21樓:匿名使用者

insert into table(field1) select '你要插入的值' from table where field1 not in (select field1 from table)

Thinkphp中的where條件怎麼寫呢

兩塊錢解決你的問題,obj where where array id id,select thinkphp 中的 where 條件怎麼寫 可以這樣 where username name pkid users where where select thinkphp的where條件為在乙個範圍又不等於...

sql語句中偽列用於where從句

select from select 1 as num from table t where num 0 在sql語句中 要使用contans必須建立什麼 前言 微軟的sql server資料庫是一個在中低端企業應用中佔有廣泛市場的關係型資料庫系統,它以簡單 方便 易用等特性深得眾多軟體開發人員和資...

SQL語句中WHERE後面的條件寫的順序是不是沒有前後順序的

是的,但是如果深入的研究,條件先後順序跟sql語句效能會有關係。當sql語句中的where條件過多時,有先後順序嗎?where 後面的條件copy判斷語句先後是沒有關係的。因為要滿足 where 後面的所有判斷條件後,where 才能最後得出 真 的結果。有時候為了閱讀方便,把個別的條件語句用括弧括...