Oracle update 多欄位更新

2022-09-17 13:27:13 字數 1604 閱讀 4964

以student表為例:

-- 建立學生表

create table student

( id number,

name varchar2(40),

age number,

birthday date,

address varchar2(200)

)-- 插入資料

insert into student(id, name, age, birthday, address)

values(1, '王小波', 50, to_date('19700520','yyyymmdd'), '廣州市天河區')

-- 查詢

select * from student

-- 1 王小波 50 1970/5/20 廣州市天河區

如果需要修改資料,一般語法:

update student

set name = '王大錘',

age = 49,

birthday = to_date('19710206','yyyymmdd'),

address = '廣州市越秀區'

where id = 1;

如果字段非常多,這樣寫就稍微麻煩點,因為待修改欄位和待修改的資料沒有分離。

還有另外一種寫法(欄位多的時候寫的時候方便,書寫效率高些;欄位少的時候感覺不出來):

update student

set (name, age, birthday, address) =

(select '王大錘', 49, to_date('19710206','yyyymmdd'), '廣州市越秀區' from dual)

where id = 1

多表級聯更新語法為:

update tablea a set a.col1 = (select b.col1 from tableb b where b.col2 = a.col2),

a.col3 = (select c.col1 from tablec c where c.col2 = a.col2)

where condition

該語句作用就是當tablea中col2列的值等於tableb中col2列的值時,那麼將tablea所在行的col1的值設定為tableb相應行的col1的值,當tablea中col2列的值等於tablec中col2列的值時,那麼將tablea所在行的col1的值設定為tablec相應行的col1的值,換句話說就是將tabla中所有滿足a.col2=b.col2的行的col1列的值設定為b對應的行的col1列的值,將tablea中所有滿足a.col3=c.col1的行的col3列的值設定為c對應的行的col1列的值。

oracle 多欄位 update語法為:

update table_a

set (a,b,c) =

(select a,b,c from table_b)

參考鏈結1:oracle中update語句修改多個字段

參考鏈結2:oracle update 多表級聯更新

mysql查詢多欄位 mysql多欄位模糊查詢

在最近的乙個專案需要實現在mysql單錶多關鍵字模糊查詢,但這數個關鍵字並不一定都存在於某個字段。例如現有table表,其中有title,tag,description三個字段,分別記錄一條資料的標題,標籤和介紹。然後根據使用者輸入的查詢請求,將輸入的字串通過空格分割為多個關鍵字,再在這三個欄位中查...

lucene多欄位查詢

booleanquery typenegativesearch new booleanquery queryparser parser new queryparser contents new analyzer parser.setdefaultoperator queryparser.and op...

lucene多欄位查詢

我的例子就是2.0的,現在給你的是兩個域,你可以用n個域 booleanquery typenegativesearch new booleanquery queryparser parser new queryparser contents new analyzer parser.setdefau...