D-如何从MySQL行类型制作数组



我正在使用mysql-native驱动程序。我的代码:

ResultRange MySQLTablesRange = mysqlconnection.query(`SELECT historysensor FROM TableName`);
auto historysensor = MySQLTablesRange.array.filter!(a=>a[0].coerce!string.canFind("historysensor"));

但是,在发送字符串上,我要进入historysensor不是数组,而是结构:Row([historysensor_10774], [false])。因此,每次获得价值,我都需要做很多类似的铸造:

foreach(sensor;historysensor)
{
    writeln(sensor[0].coerce!string.split("_")[1]);
}

如何使historysensor成为简单的数组,以便无需[0].coerce!string

您可以在执行其他事情之前只映射它

auto historysensor = MySQLTablesRange.array.
   map!(a => a[0].coerce!string). // this is new
   filter!(a.canFind("historysensor"). // no need for coerce here now
   array; // convert to plain array of strings

btw使用filter这可能也是一个错误,可能会使查询的那一部分做,因此数据库可以做到这一点,这可能会更有效,更易于阅读。

相关内容

  • 没有找到相关文章

最新更新