小编Old*_*Pro的帖子

具有复合主键的表中的记录顺序是什么

在PostgreSQL中,当指定多列的组合时PRIMARY KEY,如何排序记录?

这是假设PostgreSQL按主键的顺序排序记录.可以?

另外,在PostgreSQL的情况下,主键是否自动编入索引?

sorting postgresql primary-key

17
推荐指数
1
解决办法
6362
查看次数

使用rails将不同的顺序应用于postgres"DISTINCT ON"

我有一个rails应用程序:

user has_many :projects

user has_many :tasks, :through => :projects

project has_many :tasks

每项任务都有一个里程碑日期.

要显示我正在使用的下一个里程碑日期的项目详细信息表:

@projects = current_user.tasks.joins(:project).select("distinct on (projects.id) projects.*, tasks.*").reorder("projects.id, tasks.milestone ASC")
Run Code Online (Sandbox Code Playgroud)

这很好用.

我现在希望能够对表列进行排序.

根据Postgres DISTINCT ON不可排序,你必须将它包装在另一个select语句中,即SELECT * FROM (SELECT DISTINCT ON....) ORDER BY column_3

我确实认为订购的列可以根据需要在SQL中使用,即(按项目名称DESC排序):

@projects = current_user.tasks.joins(:project).select("distinct on (projects.name) projects.*, tasks.*").reorder("projects.name DESC, tasks.milestone ASC")
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我也希望能够通过里程碑进行排序,但这样做不起作用.

有人能告诉我如何转换我的rails查询,以便可以通过任何列进行排序吗?

UPDATE


我想我的问题很简单我怎么在周围包裹一个ActiveRecord的查询SELECTORDER BY

我想我已经成功实现了它:

inner_query = current_user.tasks.select("distinct on (projects.id) projects.*, tasks.*").reorder("projects.id, tasks.milestone ASC").to_sql
@projects = Task.paginate_by_sql("select * from (#{inner_query}) as user_projects order by user_projects.name", …
Run Code Online (Sandbox Code Playgroud)

activerecord sql-order-by distinct-on ruby-on-rails-3

17
推荐指数
1
解决办法
8437
查看次数

使用union的mysql命令似乎不起作用

这是我的查询

(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only three doors%" OR `joke` LIKE "%only three doors%") ORDER BY `ups` DESC,`downs` ASC)
UNION
(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only%" OR `joke` LIKE "%only%") ORDER BY `ups` DESC,`downs` ASC)
UNION
(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%three%" OR `joke` LIKE "%three%") ORDER BY `ups` DESC,`downs` ASC)
UNION
(SELECT * FROM `jokes` WHERE `flags` < 5 AND …
Run Code Online (Sandbox Code Playgroud)

mysql union select sql-order-by

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

在开发中禁用Sprockets资产缓存

我正在使用Rails 3.2.13和Rails Asset Pipeline.我想使用资产管道,所以我可以使用SASS和CoffeeScript和ERB作为我的资产,并让Pipeline自动编译它们,所以我不能在开发中关闭管道.我不是在开发中预编译资产,甚至没有public/assets/目录.

但是,当我对包含文件进行更改时,例如对_partial.html.erb文件中包含(呈现)的layout.html.erb文件进行更改,而不更改执行包含本身的文件(在此示例中layout.html.erb),Sprockets不检测更改并使其无效缓存,所以我不断得到相同的陈旧文件.当我在积极开发中执行此操作时,我想禁用任何资产缓存,以便我可以对每个请求进行更改,但我无法弄清楚如何执行此操作.我在我的设置中设置了以下所有内容development.rb:

config.action_controller.perform_caching = false
config.action_dispatch.rack_cache =  nil
config.middleware.delete Rack::Cache
config.assets.debug = true
config.assets.compress = false
config.cache_classes = false
Run Code Online (Sandbox Code Playgroud)

尽管如此,即使这样,文件也会显示在下面tmp/cache/assets/,tmp/cache/sass/并且未来的请求也无法进行更改.现在我每次想要看到更改时都必须手动删除这些目录.

不幸的是,资产管道RoR指南的How Caching Works部分的全部内容是:

Sprockets使用默认的Rails缓存存储来缓存开发和生产中的资产.

TODO:添加有关更改默认商店的更多信息.

那么,我如何让Sprockets按需编译资产但不缓存结果呢?

ruby rack ruby-on-rails sprockets asset-pipeline

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

在ng-repeat中使用orderBy的自定义订单

我有这样的对象:

students = {name: 'Aa_Student', class: 'A_Class'},
           {name: 'Ab_Student', class: 'A_Class'},
           {name: 'Ac_Student', class: 'B_Class'},
           {name: 'Ba_Student', class: 'B_Class'},
           {name: 'Bb_Student', class: 'C_Class'},
           {name: 'Bc_Student', class: 'C_Class'}
Run Code Online (Sandbox Code Playgroud)

假设学生对象被洗牌了.我使用ng-repeat来显示数据.我想按自定义顺序对对象进行排序.

例如,我想显示如下数据:

  Name              Class
-----------------------------
Ac_Student         B_Class
Ba_Student         B_Class
Aa_Student         A_Class
Ab_Student         A_Class
Bb_Student         C_Class
Bc_Student         C_Class
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想按学生的班级排序,但它首先是B_Class,然后是A_Class,然后是C_Class.另外,我想按字母顺序按学生姓名订购.我怎样才能做到这一点?

HTML:

<table>
    <tr ng-repeat="student in students | orderBy:customOrder">
    ...
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.customOrder = function(student) {
    $scope.students = $filter('orderBy')(student, function() {

    });
};
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-orderby

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

测试string是否不等于两个字符串中的任何一个

我只是在学习RoR所以请耐心等待.我试图用字符串写一个if或语句.这是我的代码:

<% if controller_name != "sessions" or controller_name != "registrations" %>
Run Code Online (Sandbox Code Playgroud)

我尝试了许多其他方法,使用括号,||但似乎没有任何工作.也许是因为我的JS背景......

如何测试变量是否不等于字符串1或字符串2?

ruby logic if-statement

15
推荐指数
2
解决办法
3万
查看次数

SQL ORDER由`no`结尾的NULL

我有一个MySql查询,按no列命令我的结果(int,可以为null).简单的例子:

SELECT * FROM table ORDER BY no ASC

我想得到一个类似的结果集

1, 2, 3, 10, 52, 66, NULL, NULL, NULL

但我明白了

NULL, NULL, NULL, 1, 2, 3, 10, 52, 66

是否可以使用SQL查询?

mysql sql-order-by

13
推荐指数
1
解决办法
7441
查看次数

通过desc命令作为SQL Server Management Studio的默认选项?

是否有一些方法可以使SQL Server Management Studio默认返回行降序?每次我通过菜单打开一个表(例如通过选择返回所有行),我得到顶部最旧的行.我知道我可以在sql语句中添加'order by desc',但输入会变得烦人:)

sql-server ssms sql-order-by

13
推荐指数
3
解决办法
1万
查看次数

如何使用注释处理器检查整个源代码树?

我有很多处理特定消息类型的处理程序类.要注册所有这些处理程序,我需要知道存在哪些处理程序.目前,它们都使用特定的注释进行注释,并且我使用Java 6注释处理器来获取所有这些注释,并创建一个包含每个注释类型的实例的Register类.

如果整个树一次构建,这很有效,但如果只构建一个带注释的类(例如,当我在Eclipse中保存文件时),处理器只能看到该类型,并构建一个不完整的Register.如何检查此方案中的其他类型?

android dalvik annotation-processing

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

子查询中的顺序是否保证保留?

我特别想知道PostgreSQL.鉴于以下人为的例子:

SELECT name FROM
  (SELECT name FROM people WHERE age >= 18 ORDER BY age DESC) p
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

从外部查询返回的名称是否保证按内核查询的顺序排列?

sql postgresql subquery sql-order-by

12
推荐指数
2
解决办法
4541
查看次数