關於emysql的若干問題

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碼,問題就解決了

相關文章
相關標籤/搜索