如何編寫一條SQL實現根據某個欄位的條件對某個欄位進行不同的update操作
例如:有一個user_notice表,裡面有一個count欄位,是代表當前使用者有多少條需要閱讀的訊息的,閱讀完畢以後,會更新改欄位,統一減去1或者指定的數值(例如全部置為已讀),因此如果count欄位的數值小於閱讀的數量,會出現負數的情況,可以這樣寫SQL語句避免:
例如要減去的數量是6:
update user_notice
set count=
case
when count<6
then 0
else count-6
end
如果當前數值不夠減,就直接置為0。
在MySQL上測試通過。
相關推薦
如何編寫一條SQL實現根據某個欄位的條件對某個欄位進行不同的update操作
例如:有一個user_notice表,裡面有一個count欄位,是代表當前使用者有多少條需要閱讀的訊息的,閱讀完畢以後,會更新改欄位,統一減去1或者指定的數值(例如全部置為已讀),因此如果count欄位的數值小於閱讀的數量,會出現負數的情況,可以這樣寫SQL語句避免: 例如要減去的數量是6:
Oracle中,用一條Sql實現任意的行轉列拼接(不是decode)
說明一下測試環境:Oracle9i,有朋友說10g上測試結果不正確,本人沒有條件,所以無法進行測試 表結構和資料如下(表名Test): NO VALUE NAME 1 a 測試1 1 b 測試2 1 c 測試3 1 d
一條sql實現無限極分類
我還沒提到就有人迫不及待的想回答,遞迴唄,但是你們想過沒有,遞迴的話,如果有3000個分類,有一級,二級,三級,四級的列表。你這個程式壓根就跑不動,你或許會說快取唄,但是生成快取的速度是你無法忍受的。 遞迴做法表結構建立: id int(10) 分類id na
MySQL 如何利用一條語句實現類似於if-else條件語句的判斷
一、 編寫一條update語句實現商品漲價,具體規則如下 1、99元以內,提價20% 2、100-999元之間,提價10% 3、1000-1999之間,提價5% 4、其他提價2% update goo
php中mysql一條sql語句查詢出所有符合條件的資料,該怎麼寫?
假如一個表裡有個classid欄位是類別的id,我想用一條sql語句查出classid=5的所有資料的id該怎麼查呢?正常是要迴圈,放到數組裡的吧 如圖,我想查詢classid=2的對應所有id,用
使用一條sql語句查詢兩個表的某個欄位為某個值時
使用一條sql語句查詢這兩個表的分數相同的人的名字(使用聯合查詢) create table a( id int(10), score int(3), name varchar(20), )charset utf8; create table
MySQL實現一條sql完成多條數據的更新
turn update col || param 格式 IT post href 原始功能: update categories SET display_order= 3,title = ‘New Title 1‘ where id=1; update categ
一條SQL語句實現查詢成績-60、60~80、+80的人數的方法
總結一下學到的一個SQL方法。下面我建立一個數據表: SELECT * FROM students; 可以看到資料表中存在六條資料,如果使用傳統的查詢方法,我們需要三條SQL語句,分別是: select count(*) from students where score<6
執行一條sql語句update多條記錄實現思路
如果你想更新多行資料,並且每行記錄的各欄位值都是各不一樣,你會怎麼辦呢?本文以一個示例向大家講解下如何實現如標題所示的情況,有此需求的朋友可以瞭解下 通常情況下,我們會使用以下SQL語句來更新欄位值: 複製程式碼 程式碼如下: UP
資料庫表,3個欄位,姓名,薪水,部門,用一條sql語句求每個部門薪水最高的人姓名
select t1.姓名 from 表 t1, (select max(薪水) 薪水,部門 from 表 group by 部門) t2 where t1.部門=t2.部門 and t1.薪水 = t2.薪水 create table t1 ( NAME VARCH
Mysql 一條SQL語句實現批量更新資料,update結合case、when和then的使用案例
如何用一條sql語句實現批量更新?mysql並沒有提供直接的方法來實現批量更新,但是可以用點小技巧來實現。 複製程式碼 程式碼如下: UPDATE mytable SET myfield = CASE id WHEN 1 THEN
用一條SQL語句查出每門課都大於80分的學生的姓名
src exist spa weight utf8 exists null ont http 用一條SQL語句查出每門課都大於80分的學生的姓名,數據表結構如下: 建表SQL如下: SET FOREIGN_KEY_CHECKS=0; -- --------------
如何一條sql語句查找表中第二大值
roman splay 排名 數據庫 依然 sel col eight over 例1: 一個Customer表,一個字段Value,現請問如何查到Value中第二大的值 select max(value) from Customer
使用一條sql查詢多個表中的記錄數
nbsp lec sel code spa select bold style 查詢 方法一: select t1.num1,t2.num2,t3.num3 from (select count(*) num1 from table1) t1, (se
一條sql語句update 多條記錄
key mysq ech tle date class spl imp set UPDATE categories SET display_order = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 END
Oracle 一條sql插入多條數據
har into primary from bsp 多條 style lec num Oracle一次插入多條數據。 表結構: create table aa ( ID NUMBER(11) PRIMARY KEY, NAME VAR
一條SQL引發系統out of memory PostgreSQL
一條sql引發系統out of memo錯誤描述(1) Postgres執行的原SQL:select COALESCE(m1.place_id, m2.place_id, m3.place_id) as place_id, concat_ws('``', m1.rich_attributes,
一條SQL查詢一個屬性,多個屬性值的情況
cat sele 屬性 clas family 獲取 sql 查詢 group 原先sql獲取角色對應的權限信息: select a.*, group_concat(b.auth_name) as auth_name from sh_role a left join sh_
一條SQL引起的MySQL主從復制報錯1205
MySQL主從復制 Error_code: 1205 鎖表 SQL優化 大家都知道DBA就像是消(背)防(鍋)員(俠),因為前端應用還有開發上線的新版本都會影響到位於最底層的數據庫,前方稍微有些風吹草動,就能反應在數據庫的性能上。但是有的時候SQL不僅能決定數據庫的性能,還能決定數據庫的生死,
cakephp獲取最後一條sql語句
ger figure manage 設置 語句 代碼 sql語句 echo data 1.在app\config\core.php中設置Configure::write(‘debug‘, 2); 2.頁面上追加如下代碼: $dbo = ConnectionManage