如何使用Clojure将PostgreSQL函数应用于查询?

lhcgjxsq  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(96)
  1. (ns training-clj.querys
  2. (:require [honey.sql :as honey]
  3. [next.jdbc.sql :as jdbc]))
  4. (defn get-by-username
  5. [db username]
  6. (let [query (honey/format {:select [:*]
  7. :from [:user]
  8. :where [:= :username username]]})]
  9. (jdbc/query db query)))

字符串
我正在为每个用户在数据库(postgresql)中进行查询,我有一个类似于这样的返回:({:id 2 :username "random" :age 18 :telephone 3120-4587}),给定我定义的这个代码库,我想将PostgreSQL LOWER()函数应用于:username键,我可以用什么方法来做到这一点?

r8uurelv

r8uurelv1#

你正在使用HoneySQL,所以调用PostgreSQL函数应该通过HoneySQL的DSL来完成。相关部分在这里描述。
至于您的具体问题,由于:*返回所有列,因此不清楚lower函数必须应用于什么。
但是我们假设你想返回:first-name,只是小写。那么它会像这样:

  1. {:select [[[:lower :first-name]]]
  2. ...}

字符串

  1. {:select :%lower.first-name
  2. ...}

相关问题