相关疑难解决方法(0)

MySQL由一个数字命令,Nulls持续

目前我在声明中做了一个非常基本的OrderBy.

SELECT * FROM tablename WHERE visible=1 ORDER BY position ASC, id DESC
Run Code Online (Sandbox Code Playgroud)

这个问题是'position'的NULL条目被视为0.因此,位置为NULL的所有条目都出现在1,2,3,4之前.例如:

NULL, NULL, NULL, 1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)

有没有办法实现以下排序:

1, 2, 3, 4, NULL, NULL, NULL.
Run Code Online (Sandbox Code Playgroud)

mysql sql-order-by

258
推荐指数
5
解决办法
11万
查看次数

Rails:最后以空值排序

在我的Rails应用程序中,我遇到了几次问题,我想知道其他人如何解决:

我有一些值是可选的记录,所以有些记录有一个值,有些记录的值为null.

如果我在某些数据库上按该列排序,则首先对空值进行排序,在某些数据库上对空值进行排序.

例如,我有照片可能属于或可能不属于集合,即有一些照片在哪里collection_id=nil和一些在哪里collection_id=1等.

如果我Photo.order('collection_id desc)在SQLite上做的话我最后得到空值但是在PostgreSQL上我先得到空值.

是否有一个很好的标准Rails方法来处理这个并在任何数据库中获得一致的性能?

sorting null activerecord ruby-on-rails ruby-on-rails-3

77
推荐指数
9
解决办法
3万
查看次数

MySQL:获取最新记录

在下面的表格,我怎么得到公正的最新记录id=1基础上,登入列,而不是所有3条记录?

+----+---------------------+---------+
| id | signin              | signout |
+----+---------------------+---------+
|  1 | 2011-12-12 09:27:24 | NULL    |
|  1 | 2011-12-13 09:27:31 | NULL    |
|  1 | 2011-12-14 09:27:34 | NULL    |
|  2 | 2011-12-14 09:28:21 | NULL    |
+----+---------------------+---------+
Run Code Online (Sandbox Code Playgroud)

mysql sql

70
推荐指数
3
解决办法
12万
查看次数

可以使用SQL按日期排序,但将空日期放在结果集的后面?

我在MySQL数据库中有很多任务,其中一个字段是"截止日期".并非每项任务都必须在截止日期之前完成.

我想使用SQL按截止日期对任务进行排序,但是将没有截止日期的日期放在结果集的后面.就像现在一样,空日期首先出现,然后其余部分按截止日期排序到最晚.

有关如何单独使用SQL的任何想法?(如果需要的话,我可以用PHP来做,但是只有SQL的解决方案会很棒.)

谢谢!

mysql sql

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

Django:添加"NULLS LAST"进行查询

我想使用Postgresql的"NULLS LAST"选项对模型进行排序.怎么可能呢?

我试过类似的东西

MyModel.objects.all().extra(order_by=('-price', 'NULLS LAST'))

但我明白了

"无法将关键字'NULLS LAST'解析为字段"

django

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

如何按搜索栏中的名字和姓氏排序 - Sqlite

我有一个Android应用程序,应该取代Android原生联系人.

我想为用户添加基于字符约束搜索用户的可能性.

例如:

这是我的联系人表:

id  firstName  lastName
1.    Smith      Jean
2.    allen      carr
3.               zetter
4.    john       Stewart
5.    Smith      Allen
6.    Smith      Davey
7.               Smitten
8.    barney     saltzberg
Run Code Online (Sandbox Code Playgroud)

如果用户输入了该字符's',我想给他所有的姓名或姓氏中带有's'的联系人,先按名字排序,然后按姓氏排序.从我想得到的结果之前的表是:

id  firstName  lastName
1.    Smith      Allen
2.    Smith      Davey
3.    Smith      Jean
4.    barney     saltzberg
4.               Smitten
5.    john       Stewart
Run Code Online (Sandbox Code Playgroud)

更新: 问题是当名字等于NULL时,排序不起作用,行显示在它应该之前.我试过marcin的答案,这给了我错误的结果.

我尝试了以下方法:

  1. 字符串选择= Pe​​opleDataBase.COLUMN_FIRST_NAME +"LIKE'"+约束+"%'或"+ PeopleDataBase.COLUMN_LAST_NAME +"LIKE""+约束+"%'";

    Cursor cur = db.query(PeopleDataBase.TABLE_PEOPLE,null,selection,null,null,null,null);

我想通过两个不同的查询实现这一点,一个用于名字,一个用于姓氏,然后将它们连接到一个光标,但我确信有更好的解决方案.

更新:我也尝试按以下方式排序,但没有成功.

   Cursor cur = db.query(PeopleDataBase.TABLE_PEOPLE, null, selection, null, null, null, PeopleDataBase.COLUMN_FIRST_NAME + "," + …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-contacts

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