1 引言mysql
衆所周知,用Erlang操做mysql數據庫的須要經過emysql技術,emysql用起來很是簡單,可是有些地方若是咱們沒有注意到就會有些問題。
web
2.問題彙總及解決sql
咱們經過emysql基本操做數據庫,大體邏輯代碼以下:數據庫
get_terminal_online_statistic( StartTime )-> SQL = "SELECT * FROM terminal_online_statistic WHERE statistic_time <'"++StartTime++"';", lager:info("The SQL is : ~p~n",[SQL]), {result_packet,_,_,Rows,_} = emysql:execute(nms_cache_pool,list_to_binary(SQL)), Rows.
通常這樣的查詢的結果存在Rows裏面了是一個列表的形式
dom
下面能夠在nms_webserver裏面查看其運行結果,效果以下圖:code
被紅色標記的爲要返回的結果。server
可是若是咱們要查詢一個知足條件的總數(count(*))的話,返回給咱們的是一個字符「!」的列表,這樣咱們就會很鬱悶。terminal
這個問題描述以下get
SELECT count(*) FROM terminal_online_statistic WHERE domain_moid = 'dcb80871-372b-4617-b329-9aafe6f78acb' && statistic_time BETWEEN '2015/07/28 19:47:32' AND '2015/08/04 19:47:32';
在數據庫裏面查詢,運行的結果以下:class
可是用emysql執行這個語句的返回結果以下:
咱們也許會感到驚訝爲何不是33,可是erlang裏面列表的字符其實就是整數,就會知道返回的就是33
咱們只須要再對其進行提取就好了,方法以下:
得到的C就是33了,其實就是字符'!'的ASCII碼,問題就解決了