MySQL好用的數學函數

來源:互聯網
上載者:User

標籤:

最近項目很忙,分給我的功能都比較複雜,還好能應付的下來。在工作的過程中,我發現使用mysql的內建函數能夠極大的減少程式的複雜度。這是必然的,使用mysql的函數,能夠在程式裡面省卻很多的迴圈遍曆。但是網上有的專家說,在mysql裡面使用數學以及字串函數,會使得mysql的效率變慢,我想這是必然的。把本來是程式應該乾的事情交給了mysql去幹,mysql乾的越多,那麼效率就越低。

那麼有沒有可能找到一個平衡呢?不建議,因為有大神說mysql的函數效率低,就不使用。如果這樣子的話,那麼乾脆連mysql資料庫也不要使用了吧,比mysql成熟的資料庫一抓一大把。但是為什麼還要使用mysql呢?免費呀(現在不免費了),既要使用mysql的優點,也要盡量避免mysql效率低的坑。也就是在做系統的使用,要問清楚這個軟體的運用範圍。

如果是內部系統,都知道內部系統通常商務邏輯非常複雜,功能非常細緻,但是訪問量比較小,也就是並發量比較小。外部系統可能也許邏輯上沒有內部系統這麼複雜,但是訪問量比較多,並發比較大。如果是訪問量比較小的軟體,就可以在系統裡儘可能的使用mysql的內建函數,充分降低的程式的複雜度,也利於維護。如果是訪問量大的程式就要儘可能的將計算好資源的邏輯放在程式裡面跑,儘可能將服務端非機密的計算放在使用者端去跑。讓用戶端負責計算,讓程式段負責邏輯,讓DB端只負責資料的儲存。各司其職,各用所長。

總之不能因噎廢食,不能因為別人的一句話,正好順應了自己不想學習的懶惰之心。

mysql數學函數走起,先寫一部分,以後慢慢補充。

 1、format(x,y)  函數,功能是將一個數字x,保留y位小數,並且整數部分用逗號分隔千分位,小數部分進行四捨五入。

需要注意的是,一旦你的資料經過千分位分隔後,就會變成字串。能夠給閱讀上提供比較好的體驗,但是在計算上卻造成很大的困擾,所以如果只是保留小數,不建議使用這個函數。

2、abs();  求一個數的絕對值;absolute

3、sqrt();求一個數的平方根。sqrt是sqruar(平方,矩形) ,root(根)的縮寫。

4、mod(x,y)  x除數,y被除數。結束是餘數。

  

5、ceil()  進一取整。

     floor()舍一取整

這兩個函數是鏡子函數,比較有點意思。這兩個函數並不進行四捨五入,比較強硬。

6、rand()  顧名思義,是用來產生隨機數用的。

7、format 會自動進行千分位,下面我們來看看round函數,進行四捨五入。

8、truncate(x,y)  比較霸道,不管四捨五入,直接把x,的y位小數直接幹掉。

9、sign() 返回當前結果得符號,如果是負數返回-1,如果是0 返回0 如果是正數,返回1.

10、power()  冪運算

MySQL好用的數學函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.