1. 程式人生 > >COALESCE 解決 MySQL null求和問題

COALESCE 解決 MySQL null求和問題

今天在操作資料庫的時候,遇到了一個問題,我需要在一張資料表中新加一個欄位,並且將這個欄位的值,設為其他幾個表中欄位的和。第一步:在表中加入sum欄位假設oa_staff_monthcostitem表有這些欄位,我需要新加一個sum欄位ALTER TABLE `oa_staff_monthcostitem` add `sum` DECIMAL(25,4) NULL DEFAULT NULL COMMENT '合計' AFTER `hourlywage`;第二步,將欄位的值設為pay+company+welfare+bonus執行這個sqlupdate `oa_staff_monthcostitem` set `sum`=`pay`+`company`+`welfare`+`bonus`;顯示受影響的有48條資料,可是我表中的資料遠遠大於48條,也就是說有很多是沒有計算的。為什麼也就是說null和其他的值相加還是null值,因為我表中相加的資料有null值,所以相加之後還是null,就不會有變化,那要怎麼解決呢?就是用COALESCE COALESCE 返回第一個不是null的資料把原來的sql改一下:update `oa_staff_monthcostitem` set `sum`=COALESCE(`pay`,0)+COALESCE(`company`,0)+COALESCE(`welfare`,0)+COALESCE(`bonus`,0);這下受影響的有100多條,就可以了

相關推薦

COALESCE 解決 MySQL null求和問題

今天在操作資料庫的時候,遇到了一個問題,我需要在一張資料表中新加一個欄位,並且將這個欄位的值,設為其他幾個表中欄位的和。第一步:在表中加入sum欄位假設oa_staff_monthcostitem表有這些欄位,我需要新加一個sum欄位ALTER TABLE `oa_staff

mysql NULL求和問題

今天一個同事問我一個問題,他執行一條如下的求和的sql語句: select sum(a + b + c + d),sum (a),sum(b),sum(c),sum(d) from T ; 結果是:11,3,5,3,5,也就是 放在一塊求和分別求和,結果不一致, 剛一看問

解決mysql報錯:- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ'

_for tran contains column schema mysql eat table express mysql執行報錯: - Expression #1 of ORDER BY clause is not in GROUP BY clause and cont

mysql】service mysql start出錯,mysql啟動不了,解決mysql: unrecognized service錯誤

開機 init.d starting 設置 tin 執行 rest root lan service MySQL start出錯,mysql啟動不了,解決mysql: unrecognized service錯誤的方法如下: [[email protected]/

解決Mysql導入大數據出現gone away的問題

class solution style 數據 sql my.ini div ini dmi 在用Mysql Yog或者PHPMyadmin等工具導入數據量大的sql文件時,會提示“gone away”,那麽如何處理這個問題尼? 在Mysql對應的配置文件中my.ini文件

【案例】利用innodb_force_recovery 解決MySQL服務器crash無法重啟問題

sock ogre ogr 事務 == format span caused his 一 背景 某一創業的朋友的主機因為磁盤陣列損壞機器crash,重啟MySQL服務時 報如下錯誤: InnoDB: Reading tablespace informatio

解決mysql 數據庫主從不同步

主從不同步今天發現Mysql的主從數據庫沒有同步 先上Master庫: mysql>show processlist; 查看下進程是否Sleep太多。發現很正常。show master status; 也正常。 mysql> show master status;+--------------

如何快速解決MySQL 1032 主從錯誤

data tex pda test 報錯 show pos replicat 0 rows 3分鐘解決MySQL 1032主從錯誤 Part1:寫在最前1032錯誤----現在生產庫中好多數據,在從庫誤刪了,生產庫更新後找不到了,現在主從不同步了,再跳過錯誤也沒用,因為沒這

怎樣解決MySQL數據庫主從復制延遲的問題?

nod 才會 多臺 好的 解決方案 系統配置 分鐘 ron 主從 1.網絡超時2.慢查詢3.流量 問題一:主庫的從庫太多,導致復制延遲從庫數據以3-5個為宜,要復制的從節點數量過多,會導致復制延遲問題二:從庫硬件比主庫差,導致復制延遲查看Master和Slave的系統配置,

jsp 之 解決mysql不是內部或外部命令問題

.com span bfc 出現 mysql com mysq size 設置 安裝Mysql後,當我們在cmd中敲入mysql時會出現‘Mysql’不是內部或外部命令,也不是可運行的程序或其處理文件。 打開我的電腦在我的電腦右鍵中選擇屬性,然後單擊選擇高級系統設置。 在

MySQL】如何解決MySQL中查詢不區分大小寫的問題

bsp title 標識 article ble 問題 col bold table mysql查詢默認是不區分大小寫的 如: select * from some_table where str=‘abc‘; select * from some_ta

解決mysql登錄警告問題

user using mysql warning 文件名 家目錄 感覺 comm left 一、前言 我們在登錄mysql的時候經常會看到一句警告: Warning: Using a password on the command line interface can be

解決mysql二進制日誌恢復數據報錯:@@GLOBAL.GTID_MODE = OFF.

實例 多個 ons bar $? on() false ria echo 解決mysql利用二進制日誌恢復數據報錯:ERROR 1781 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER

解決mysql-socket報錯問題

生成 min 作用 mys 外部連接 即使 方式 根據 lib [root@cml python]# cat test.py | head -n 20#!/usr/local/bin/python'''author = chenmingle'

徹底解決mysql中文亂碼

在服務器 user cli varchar oba test roo 插入 rom mysql是我們項目中非常常用的數據型數據庫。但是因為我們需要在數據庫保存中文字符,所以經常遇到數據庫亂碼情況。下面就來介紹一下如何徹底解決數據庫中文亂碼情況。 1、中文亂碼

解決MYSQL的錯誤:Got a packet bigger than 'max_allowed_packet' bytes

測試 == 註意 Go ont 解決 情況下 class 開始 Mysql 5.1開始遇到的信息包過大問題,當用客戶端導入數據的時候,遇到錯誤代碼: 1153 - Got apacket bigger than ‘max_allowed_packet‘ bytes,數據庫終

解決MySQL報錯ERROR 2002 (HY000)

MySQL報錯 ERROR2002 配置文件 my.cnf MySQL安裝 今天在為新的業務線搭架數據庫後,在啟動的時候報錯root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysqlERROR 2002 (HY000): Can't

解決mysql遠程登錄

登錄 upd set mysq pri 遠程登錄 SQ 可能 方法    MySQL不允許遠程登錄,所以遠程登錄失敗了,解決方法如下: 在裝有MySQL的機器上登錄MySQL mysql -u root -p密碼 執行use mysql; 執行update user se

解決Mysql 服務無法啟動 服務沒有報告任何錯誤

靠譜 mysql安裝 登錄 mysql5 pan 解決方法 打開 拷貝 並且 MySQL數據庫在升級到5.7版本後,和之前的版本有些不一樣,沒有data文件夾,我們都知道MySQL數據庫文件是保存在data文件夾中的,網上有人說把5.6版本的data文件夾拷貝一個,這種說法

完全解決 MySQL 5.7 主從復制的延遲問題

cond master sla sql 進行 b- proc mas 恢復 1、問題發現sysbench使用以下配置對MySQL進行測試 sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --my