- 59
- 0
这个查询操作我使用了查询插件(rummage_ecto),
以下是命令行测试:
iex(4)rummage = %{
...(4)> search: %{name: %{search_type: :like, search_term: "c"}},
...(4)> sort: %{field: :name, order: :asc},
...(4)> paginate: %{page: 1}
...(4)> }
%{paginate: %{page: 1},
search: %{name: %{search_term: "c", search_type: :like}},
sort: %{field: :name, order: :asc}}
iex(5)> {queryable, rummage} = ZergApi.Base.Exchange.rummage(rummage)
[debug] QUERY OK source="exchanges" db=0.1ms
SELECT count(DISTINCT e0.`id`) FROM `exchanges` AS e0 []
{#Ecto.Query<from e in subquery(from e in subquery(from e in ZergApi.Base.Exchange),
where: like(e.name, ^"%c%")),
order_by: [asc: e.name], limit: ^10, offset: ^0>,
%{paginate: %{max_page: 1, page: 1, per_page: 10, total_count: 10},
search: %{name: %{assoc: [], search_expr: :where, search_term: "c",
search_type: :like}},
sort: %{assoc: [], field: :name, order: :asc}}}
这个表中有十个数据。在搜索操作后,将会有三条数据被返回,即total_count = 3,但是实际返回了十条,即total_count = 10,和下面的是实际的数据。
下面是返回的实际数据
iex(6)> exchanges = queryable |> ZergApi.Repo.all
[debug] QUERY OK db=0.4ms
SELECT s0.`id`, s0.`name`, s0.`cn_name`, s0.`home_page`, s0.`timezone`, s0.`inserted_at`, s0.`updated_at` FROM (SELECT s0.`id` AS `id`, s0.`name` AS `name`, s0.`cn_name` AS `cn_name`, s0.`home_page` AS `home_page`, s0.`timezone` AS `timezone`, s0.`inserted_at` AS `inserted_at`, s0.`updated_at` AS `updated_at` FROM (SELECT e0.`id` AS `id`, e0.`name` AS `name`, e0.`cn_name` AS `cn_name`, e0.`home_page` AS `home_page`, e0.`timezone` AS `timezone`, e0.`inserted_at` AS `inserted_at`, e0.`updated_at` AS `updated_at` FROM `exchanges` AS e0) AS s0 WHERE (s0.`name` LIKE ?)) AS s0 ORDER BY s0.`name` LIMIT ? OFFSET ? ["%c%", 10, 0]
[%ZergApi.Base.Exchange{__meta__: #Ecto.Schema.Metadata<:loaded, "exchanges">,
cn_name: "", home_page: "", id: 5,
inserted_at: ~N[2018-04-10 14:02:17.000000], name: "",
products: #Ecto.Association.NotLoaded<association :products is not loaded>,
timezone: "Asia/Shanghai", updated_at: ~N[2018-04-10 14:02:17.000000]},
%ZergApi.Base.Exchange{__meta__: #Ecto.Schema.Metadata<:loaded, "exchanges">,
cn_name: "", home_page: "", id: 6,
inserted_at: ~N[2018-04-10 14:02:17.000000], name: "",
products: #Ecto.Association.NotLoaded<association :products is not loaded>,
timezone: "Asia/Shanghai", updated_at: ~N[2018-04-10 14:02:17.000000]},
%ZergApi.Base.Exchange{__meta__: #Ecto.Schema.Metadata<:loaded, "exchanges">,
cn_name: "", home_page: "", id: 4,
inserted_at: ~N[2018-04-10 14:02:17.000000], name: "",
products: #Ecto.Association.NotLoaded<association :products is not loaded>,
timezone: "Asia/Shanghai", updated_at: ~N[2018-04-10 14:02:17.000000]}]
各位能够提供一些建议吗
1
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
