相关疑难解决方法(0)

带有元素编号的PostgreSQL unnest()

当我有一个具有分隔值的列时,我可以使用该unnest()函数:

myTable
id | elements
---+------------
1  |ab,cd,efg,hi
2  |jk,lm,no,pq
3  |rstuv,wxyz

select id, unnest(string_to_array(elements, ',')) AS elem
from myTable

id | elem
---+-----
1  | ab
1  | cd
1  | efg
1  | hi
2  | jk
...
Run Code Online (Sandbox Code Playgroud)

我如何包含元素编号?即:

id | elem | nr
---+------+---
1  | ab   | 1
1  | cd   | 2
1  | efg  | 3
1  | hi   | 4
2  | jk   | 1
...
Run Code Online (Sandbox Code Playgroud)

我想要源字符串中每个元素的原始位置.我试着窗口函数(row_number(), …

sql arrays postgresql window-functions set-returning-functions

69
推荐指数
3
解决办法
8万
查看次数

自定义ORDER BY说明

我不久前发现了这个,并且从那时起就一直在使用它; 然而,今天看着它,我意识到我并不完全理解为什么它有效.有人可以为我解释一下吗?

ORDER BY  s.type!= 'Nails',
          s.type!= 'Bolts',
          s.type!= 'Washers',
          s.type!= 'Screws',
          s.type!= 'Staples',
          s.type!= 'Nuts', ...
Run Code Online (Sandbox Code Playgroud)

如果我按s.type订购,则按字母顺序排序.如果我使用上面的示例,它使用与行位置相同的顺序.我不明白的是使用!=.如果我使用=它会以相反的顺序出现.我无法理解这个概念.

我会告诉我,使用=代替上面的!=将Nails放在第一位,但它没有,它把它放在最后.我想我的问题是:为什么我必须使用!=,not =在这种情况下?

postgresql sql-order-by

55
推荐指数
4
解决办法
2万
查看次数

按ID给出的模型记录按ID数组的顺序查找

我有一个查询来获取特定顺序的人的ID,比如说: ids = [1, 3, 5, 9, 6, 2]

然后,我想要通过获取这些人 Person.find(ids)

但它们总是以数字顺序提取,我通过执行以下方式知道:

people = Person.find(ids).map(&:id)
 => [1, 2, 3, 5, 6, 9]
Run Code Online (Sandbox Code Playgroud)

如何运行此查询以使顺序与ids数组的顺序相同?

我使这个任务变得更加困难,因为我只想执行查询以从给定的ID中获取一次.因此,执行多个查询是不可能的.

我尝试过类似的东西:

ids.each do |i|
  person = people.where('id = ?', i)
Run Code Online (Sandbox Code Playgroud)

但我认为这不起作用.

activerecord ruby-on-rails ruby-on-rails-3

37
推荐指数
9
解决办法
2万
查看次数

如何避免警告"使用集合提取指定的firstResult/maxResults;在内存中应用!" 什么时候使用Hibernate?

我在服务器日志中收到警告"使用集合提取指定的firstResult/maxResults;在内存中应用!" .然而一切正常.但我不想要这个警告.

我的代码是

public employee find(int id) {
    return (employee) getEntityManager().createQuery(QUERY).setParameter("id", id).getSingleResult();
}
Run Code Online (Sandbox Code Playgroud)

我的疑问是

QUERY = "from employee as emp left join fetch emp.salary left join fetch emp.department where emp.id = :id"
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa jpql ejb-3.0

27
推荐指数
4
解决办法
3万
查看次数

Laravel:按顺序排列

我正在使用SphinxSearch查询一些内容并拥有我想用MySQL查询的对象的id.我的ID数组根据Sphinx给出的等级排序.因此,我想像这样制作一个MySQL:

SELECT * FROM table WHERE id IN (1,17,2) 
ORDER BY FIELD(id,1,17,2)
Run Code Online (Sandbox Code Playgroud)

我知道我能做到:

Table::whereIn('id', $ids)->get();
Run Code Online (Sandbox Code Playgroud)

但我无法得到我的订单.

我怎么能用Laravel以适当的方式做到这一点?

php mysql sphinx laravel

19
推荐指数
2
解决办法
1万
查看次数

Rails,ActiveRecord,在int数组中查询id,保持传递数组的顺序

我正在考虑解决问题的最佳方案.假设我们有一个ActiveRecord模型的ID列表:

ids = [1, 100, 5, 30, 4, 2, 88, 44]
Run Code Online (Sandbox Code Playgroud)

然后我想进行查询,选择所有用户,例如列表中的ID,但保持订单.如果我做

User.where(id: ids)
Run Code Online (Sandbox Code Playgroud)

响应将是具有asc order by id的用户列表,但我希望订单与数组中的顺序相同.

您认为这是最好的解决方案吗?选择所有用户,然后操作ActiveRecord对象列表?也许有一种更聪明的方法可以做到这一点.

谢谢!

ruby-on-rails ruby-on-rails-4

16
推荐指数
3
解决办法
4390
查看次数

在sql分页中保持列表的顺序

我有一个包含插入顺序的列表.我想使用相同的顺序对结果进行分页.正如您目前所看到的,输出将是不同的顺序.

following_companies_list_data = Company.query.filter(Company.id.in_(['2', '24', '1', '7', '373'])).paginate(
            page, per_page=10, error_out=False)

companies = following_companies_list_data.items

for i in companies:
    print i.id

7
24
373
2
1
Run Code Online (Sandbox Code Playgroud)

相关问题

python postgresql sqlalchemy flask flask-sqlalchemy

12
推荐指数
1
解决办法
996
查看次数

如何按IN子句的顺序选择mysql行

例如我在表EMPLOYEE中:

(code, name)
(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

如果您这样做:(从EMPLOYEE中选择*)您将得到:

(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

如果您这样做:(从EMPLOYEE中选择*,您将获得(1,3,2,4)中的代码:

(1, 'Jimmy')
(2, 'Albert')
(3, 'Michelle')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

如何按IN子句中的CSV值顺序获取它,原样如何?

(1, 'Jimmy')
(3, 'Michelle')
(2, 'Albert')
(4, 'Felix' )
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-order-by

9
推荐指数
1
解决办法
4470
查看次数

如何按列表对sqlalchemy中的数据进行排序

我有来自外部 postgresql 数据库的 ID 列表。

A = [1,2,3,4,5,6,7,98,0]
Run Code Online (Sandbox Code Playgroud)

我会使用 SQLAlchemy 对数据库进行查询,但我会按 A 列表对 postgresql 中的数据进行排序。

我已经阅读了很多文档,但找不到任何关于如何做到这一点的建议。

所以,最后我会有:

results = session.query(user).limit(20).offset(10).order_by(A)
Run Code Online (Sandbox Code Playgroud)

干杯

更新:

我找到了解决方案,它没有我预期的那么好,但效果很好。无论如何,如果您知道更好的解决方案,请告诉我!

ids = ','.join([str(i) for i in A])
results = session.query(user).filter(user.id.in_(A)).\
limit(20).offset(10).\
order_by(" position(CONCAT(',',users.id::text,',') in ',{0},'.format(ids)")
Run Code Online (Sandbox Code Playgroud)

python sql postgresql sqlalchemy

5
推荐指数
2
解决办法
5130
查看次数

在 Django 中从 ids 列表手动创建查询集

假设我有一个模型My_model,并且有该模型的 id 列表;

my_ids = [3,2,1,42]
Run Code Online (Sandbox Code Playgroud)

现在我想获得一个带有My_model.objectsid 的 QuerySet。我已经找到了这个解决方案,但它对我不起作用,因为我希望 QuerySet 中的对象与my_ids.

如何在 Django 和 Python 中转换 QuerySet 中的 id 列表?

python sqlite django django-queryset

5
推荐指数
1
解决办法
2818
查看次数