如何遍历结果集并提取Clojure中的一个特定值? [英] How to iterate over a result set and extract one particular value in clojure?

查看:46
本文介绍了如何遍历结果集并提取Clojure中的一个特定值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我尝试遍历结果集并获取其值

Below is my attempt to iterate over a result set and get its values

(sql/with-connection db 
 (sql/with-query-results rs ["select * from user where UserID=?" 10000] 
    (doseq [rec rs
        s   rec]
  (println (val s))
)))

但是您如何从中提取一个特定的值?我只需要用户名字段。

But how do you extract one particular value from it; i need only the user name field.

有人可以演示如何做吗?

Can anyone please demonstarte how to do this?

推荐答案

结果集是一系列地图,因此,如果要获取一个字段(例如,一个名为 name 的字段),则:

The result set is a sequence of maps, so if you wanted to obtain one field (e.g. one called name) then:

(sql/with-connection db 
  (sql/with-query-results rs ["select * from user where UserID=?" 10000] 
    (doseq [rec rs]
      (let [name (:name rec)]
         (println "User name:" name)
         (println "Full record (including name):" rec)))))

但是正如评论中所提到的,如果只想命名,则中选择名称将是更有效的选择。上面的代码在您需要整行进行其他操作时很有用。

But as mentioned in the comments, if you only want name, then select name from would be the more efficient option. The code above is useful when you need the full row for something else.

这篇关于如何遍历结果集并提取Clojure中的一个特定值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆