程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL字段自增自減的SQL語句示例引見

MySQL字段自增自減的SQL語句示例引見

編輯:MySQL綜合教程

MySQL字段自增自減的SQL語句示例引見。本站提示廣大學習愛好者:(MySQL字段自增自減的SQL語句示例引見)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL字段自增自減的SQL語句示例引見正文


MySQL的自增語句年夜家應當都很熟習 也很簡略

update `info` set `comments` = `comments`+1 WHERE `id` = 32

如許便可以了,然則有時刻我們會觸及到做減法,

例如:文章的評論數,在刪除或許鎖定了一條評論以後須要對該文章總評論數減一

comments smallint(5) unsigned 文章評論總數統計字段 無符號即 0 ~ 65535 之間的數值

1. 平日情形下是可以相似下面自增的辦法 把 +號 改成 -號 就好了,但成績是假如以後 comments 統計數值為 0 時 再做減法將會釀成該字段類型的最年夜數值 65535

update `info` set `comments` = `comments`-1 WHERE `id` = 32

2. 為防止這個成績普通的設法主意只能是先依據 id 主鍵查詢出文章 comments 統計字段值,再經由過程PHP做減法,然後再 update 一次,前後總共須要履行兩次SQL敕令

明天谷歌查了下沒找到這方面的材料,看了看MySQL的語法函數等等。。。試了上面的語句可以直接一條語句完成,也就是加個 if 斷定,以下示例:

update `info` set `comments` = IF(`comments`< 1,0,`comments`-1) WHERE `id` = 32

默許comments為0時, comments-1 = 65535;但測試了下 假如直接 斷定 comments-1=65535 似乎不可,不曉得甚麼緣由,對這個不是很熟習不曉得是否是 這裡的 if 不支撐 = 號,然則 comments-1 >= 65535 可以成立,因而當 comments 為 0 時,IF(`comments`-1>=65535,0,`comments`-1) 將前往 0提醒:最年夜數值 65535 是 smallint 無符號狀況下的最年夜值,其他字段類型請停止響應調劑

----------------------------------------------------------------------------------------------------------------------

2014/02/03 彌補:剛開端是這麼寫的,後來發明太笨了,略微改下:

update `info` set `comments` = IF(`comments`<1, 0, `comments`-1) WHERE `id` = 32

要減x,就斷定能否小於x
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved