Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在Ruby中运行任意SQL查询_Mysql_Sql_Ruby - Fatal编程技术网

Mysql 在Ruby中运行任意SQL查询

Mysql 在Ruby中运行任意SQL查询,mysql,sql,ruby,Mysql,Sql,Ruby,我刚刚被指派在工作中自动完成报告任务。以前,有人会使用GUI工具在MySQL数据库上运行大型、任意的SELECTs,然后使用相同的工具将结果导出到CSV。现在我想写一个Ruby脚本来实现这一点 我知道Ruby中的FasterCSV,但就SQL查询而言,我只使用了ActiveRecord,在这里您通常不编写查询,而是使用模型和关联。我最后一次在代码中写出完整的SQL是在编写PHP时 用Ruby做这类事情最简单的方法是什么我应该使用ActiveRecord吗?如果您正在编写一个复杂的应用程序,使用A

我刚刚被指派在工作中自动完成报告任务。以前,有人会使用GUI工具在MySQL数据库上运行大型、任意的
SELECT
s,然后使用相同的工具将结果导出到CSV。现在我想写一个Ruby脚本来实现这一点

我知道Ruby中的FasterCSV,但就SQL查询而言,我只使用了ActiveRecord,在这里您通常不编写查询,而是使用模型和关联。我最后一次在代码中写出完整的SQL是在编写PHP时


用Ruby做这类事情最简单的方法是什么我应该使用ActiveRecord吗?

如果您正在编写一个复杂的应用程序,使用ActiveRecord绝对没有问题。尤其是你已经习惯了

如果您正在编写一个快速脚本,并且不想麻烦使用ActiveRecord,您还应该查看和gems。

我强烈推荐。它有一个很棒的、繁荣的、有用的社区,而且它(IMHO)比ActiveRecord更简单、更好,特别是对于像您这样的简单用例


您可能希望从阅读开始,然后。

我经常发现,在报告引擎中,您最终会遇到处理大量数据的复杂查询,而ActiveRecord之类的ORM无法解决这一问题。除非您的报告非常简单,否则我认为您应该使用原始SQL(带有Sequel之类的工具)或调用存储过程。

LOL,我从php开始就没有使用过复杂的SQL。值得注意的是,FasterCSV在1.9中成为标准库的csv模块。如果您使用的是1.8,您需要
gem安装fastercsv
才能使用它。这是一个快速脚本,是的,mysql2看起来不错。我真的只想把现有的查询直接放到我的脚本中,所以如果我可以将结果作为散列进行迭代,那就太好了。有一天我可能会让这变得更复杂,但现在的想法只是编写一个脚本,将其设置为cron作业,然后继续。我喜欢mysql2的另一件事是,我知道我们已经在Rails应用程序中使用它了。续集+1。我在Rails之外做了一些ActiveRecord工作,当我让它正常工作时,我发现Sequel更简单,更友好。这是我为Ruby选择的ORM。我喜欢将它和ActiveRecord一样方便地用于表模型,或者使用数据集或原始SQL。续集在每一个场景中都不碍事。