首先,我是这里的Erlang新秀。我需要与MySQL数据库交互,并且找到了erlang-mysql-driver。我正在尝试,对某些语法有些困惑。
我可以从数据库中获取一行数据(为简便起见,这里大大简化了):
Result = mysql:fetch(P1, ["SELECT column1, column2 FROM table1 WHERE column2='", Key, "'"]),
case Result of
{data, Data} ->
case mysql:get_result_rows(Data) of
[] -> not_found;
Res ->
%% Now 'Res' has the row
现在,这里是`Res'具有的示例:
[[<<"value from column1">>, <<"value from column2">>]]
我知道这是记录列表。在这种情况下,查询返回1行2列。
我的问题是:
<<
和>>
符号是什么意思?将这样的列表转换为我定义的记录的最佳(推荐的)语法是什么:-record(
my_record,
{
column1 = ""
,column2 = ""
}
).
最佳答案
请注意:结果不是每次看到的位字符串理解,而是位字符串。但是,您可以使用位字符串理解来生成位字符串序列(上面已在生成器中对此进行了描述),非常类似于列表和列表理解。
您可以使用erlang:binary_to_list / 1和erlang:list_to_binary / 1在二进制和字符串(列表)之间进行转换。
mysql驱动程序返回位字符串的原因可能是因为它们处理起来要快得多。
关于erlang - Erlang中的<<和>>符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1215922/