我正在尝试执行一个Ecto查询,其中我连接给定查询结果的名字和姓氏,然后使用查询字符串执行ilike搜索。例如,我可能想在数据库中搜索所有以"Bob J“开头的名字。目前,我的代码如下所示: pending_result_custom_search = from result in pending_result_query,
where: ilike(fragment("CONCAT(?, '',?)", result.first_name, result.last_name), ^query) (pending_result_que
我的代码:
defmodule Model1 do
use Ecto.Schema
import Ecto.Query
schema "model1" do
belongs_to :model2, Model2
end
def create_query do
Model1
|> join(:inner, [m1], m2 in assoc(m1, :model2))
end
def apply_where(query, %{name: name}) do
query
|> where([m1
下面是一个原始SQL:
SELECT p.*, u.name
FROM posts p
JOIN users u
ON p.user_id = u.id
如何将其转换为Ecto查询?
query = from p in Post,
join: u in User,
on: p.user_id == u.id,
select: {[p], u.name}
上面的代码正确吗?
我们正在构建一个elixir应用程序,并使用ecto连接到我们的数据库。应用程序的角色之一是基于我们的事件存储创建报告。我们决定用原始SQL编写这些报告的代码。 我需要创建一个带有一些参数的临时视图。考虑以下代码: Ecto.Adapters.SQL.query!(
Repo,
"CREATE VIEW events_view AS SELECT * FROM events WHERE type = $1",
["hello world"]
)
# This will fail with the following error:
# (Argum
我需要将以下SQL转换为Ecto查询DSL。
SELECT otc.*
FROM users u
INNER JOIN one_time_codes otc ON u.id = otc.user_id
LEFT OUTER JOIN one_time_code_invalidations otci ON otci.one_time_code_id = otc.id
WHERE u.id = 3 AND
otc.code = 482693 AND
otci.inserted_at IS NULL AND
otc.inserted_at > all(SEL
我有一个模式,看起来像这样;
schema "things" do
field(:title, :string)
field(:temperature, :integer)
field(:weight, :integer)
end
我想写一个等同于下面的SQL的Ecto查询,但是我似乎不能把它变成一个有效的形式。
select * from things where temperature <= 200 and (weight is null or weight > 2);
我如何在Ecto中做到这一点?
我有一个疑问:
select id
from events
where description is not null
and (name ilike any (query_arr)
or description ilike any (query_arr)
or additional_info ilike any (query_arr)
or venue_name ilike any (query_arr)
or other_category ilike any (query_arr)
or eventf
特别是,我正在寻找一种更容易重写like查询的方法,而不必每次都使用"lower“函数。
在SQL Server中,我的查询将如下所示:
WHERE (FIELD LIKE '%Foot%Locker%' or FIELD LIKE '%Foot%Action%' or FIELD LIKE '%Champs%')
在PostgreSQL中,我必须这样重写每个查询(如果我希望我的查询同时捕获Foot Locker和foot locker以及任何其他大写字母驱动的排列):
WHERE (lower(FIELD) LIKE lower(
为了在Postgres中执行查询,我有一个使用Ecto的药剂应用程序。我有一个Ecto模式:
defmodule Person do
use Ecto.Schema
schema "person" do
field :name, :string
end
end
我试着在药剂中做一个简单的选择:
query = from Person
result = Repo.all(query)
但是在执行了该代码之后,我看到如下:
** (FunctionClauseError) no function clause matching in Ecto.Adapte
我在灵丹妙药和菲尼克斯框架的世界里很新。我试图学习TheFireHoseProject教程,但在使用Ecto查询原始SQL时遇到了问题。本教程说,这应该是可行的:
defmodule Queries do
def random do
query = Ecto.Adapters.Postgres.query(
Repo,
"SELECT id, saying, author from quotes ORDER BY RANDOM() LIMIT 1",
[])
%Postgrex.Result{rows: [row]} = query
{id,
当Ecto查询变得更复杂,需要像CASE...WHEN...ELSE...END这样的子句时,我们倾向于依赖Ecto的fragment来解决它。
例如query = from t in <Model>, select: fragment("SUM(CASE WHEN status = ? THEN 1 ELSE 0 END)", 2)
实际上,建议创建这样一个宏:
defmacro case_when(condition, do: then_expr, else: else_expr) do
quote do
fragment(
"C
我正在尝试部署一个web应用程序,这个数据库是一个通过后缀连接到的MySQL数据库。
通常我使用PostgreSQL,但是web主机使用MySQL,通过phpMyAdmin进行访问。
我有一个在本地和Heroku中工作的api & db查询(我认为这是因为两者都使用PostgreSQL),但是对于这个web主机,可能是因为它们使用了MySQL。
当我调用API时,我会在下面得到这个错误。
"sqlMessage": "You have an error in your SQL syntax; check the manual that corresponds t
从本质上讲,我有3个字段要检查:
class Book {
String title
String ISBN
String type
}
我正在尝试使用命名查询基于单个搜索字符串对这3个字段中的每个字段执行不区分大小写的搜索。这是我目前所拥有的:
static namedQueries = {
search { String searchString ->
ilike("title", searchString)
or {
ilike("ISBN", sea
在Postgresql中,是否可以仅使用LIKE或ILIKE关键字来查询不以元音(或给定字符集)开头的字符串? 例如,我正在玩this sample DB,并试图从Customer中提取不以元音开头的first_name: SELECT first_name
FROM Customer
WHERE first_name NOT ILIKE '[aeiou]%'
ORDER BY first_name; 然而,这个查询不起作用,我得到的结果像Aaron,Adam等。问题在方括号中,因为条件NOT ILIKE 'a%'起作用。 我知道以前有类似问题的答案,但1)它
我需要通过Ecto在左侧联接中提示一个MySQL索引,这是相当困难的。
我得到的最接近的是:
query = from(s in Dossier.School,
left_join: sc in fragment("subscription_coordinators use index (subscription_coordinators_school_products_idx)"),
on: fragment("school_id = ?", 1)
and fragment("product in ('readi
假设我有User和Organization的模型,以及两者之间的多到多关系。我现在想补充关于两者之间的关系的信息。例如,timestamps和position。如何进行此操作,以及如何查询这些信息?
我认为正确的方向是使用连接模式。在Ecto文档之后,应该是这样的:
defmodule UserOrganization do
use Ecto.Schema
@primary_key false
schema "users_organizations" do
field :position, :string # adding information on t
我有一个SQL查询,如:
SELECT SUM(CASE WHEN <table_name>.status = '2' THEN 1 ELSE 0 END) FROM <table name>。
我想为上面的内容编写相应的Ecto查询。类似于:
from t in <table_name>, select: sum(...)
在上述情况下,与“案例时”的类比是什么?
有人知道如何使用Postgres 7.4进行不区分大小写的搜索/查询吗?
我在想RegEx,但不确定该怎么做,或者可能有一个函数/标志,或者我可以添加查询?
我使用PHP来连接和执行查询。
所以我想要匹配地址信息。
示例:
123 main street
123 Main st.
123 Main Street
123 main st
123 Main st
etc...
有什么想法吗?
SELECT address FROM tbl WHERE address LIKE '%123 %ain%'
我是SQL查询的新手。
我试图创建一个基于艺术家和艺术家的作品在musicbrainz数据库的查询。
例如:
如果我用
SELECT *
FROM artist
WHERE NAME::text ILIKE '%beethoven%';
它将返回名为“beethoven”的艺术家名单。
如果我用
SELECT *
FROM work
WHERE NAME::text ILIKE '%rammenta%';
这将返回以“rammenta”作为其名称一部分的作品。
实际上,"Ah, rammenta", WoO 99 No. 6是Ludwig