关于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码,问题就解决了

相关文章
相关标签/搜索