按多列对数据库中的现有用户进行排序

亚历克斯·G

我用了排序功能

sub sort_users {
  my $self = shift;
  return $self->search(undef, { order_by => [{ -desc => 'data_begin' },
    { -asc => 'username' }]});
}

以根据开始日期过滤用户,如果要按用户名对用户名进行排序,则数据库如下所示:

user1 2019-09-26 00:00:00
user2 2019-09-26 00:00:00
user3 2019-09-26 00:00:00
user4 2019-09-26 00:00:00

以下排序有时会以以下模式显示用户

user2, user3, user1, user4

其他时间

user1, user2, user3, user4.

编辑

我一起跑步,DBIC_TRACE = 1我得到了:

SELECT COUNT( * ) FROM user_access_rights me WHERE ( ( access_rights_id = ? AND date_end >= ? ) ): 'level1', '2019-10-28 07:43:30+0000'
SELECT access_rights_recipient.username, access_rights_recipient.last_login, me.access_rights_id FROM user_access_rights me  JOIN users access_rights_recipient ON access_rights_recipient.username = me.username WHERE ( ( access_rights_id = ? AND date_end >= ? ) ) ORDER BY date_begin DESC, username ASC LIMIT ?: 'level1', '2019-10-28 07:43:30+0000', '2'

INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level1', '2019-10-28T07:43:29', '2019-10-29T07:43:29', 'user1'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level1', '2019-10-28T07:43:29', '2019-10-29T07:43:29', 'user2'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level1', '2019-10-28T07:43:29', '2019-10-29T07:43:29', 'user3'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level1', '2019-10-28T07:43:29', '2019-10-29T07:43:29', 'user4'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level1', '2019-10-28T07:43:30', '2019-10-29T07:43:30', 'user5'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level2', '2019-10-28T07:43:30', '2019-10-29T07:43:30', 'user6'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level2', '2019-10-28T07:43:30', '2019-10-29T07:43:30', 'user7'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level2', '2019-10-28T07:43:30', '2019-10-29T07:43:30', 'user8'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level2', '2019-10-28T07:43:30', '2019-10-29T07:43:30', 'user9'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level2', '2019-10-28T07:43:30', '2019-10-29T07:43:30', 'user10'
INSERT INTO user_access_rights ( access_rights_id, date_begin, date_end, username) VALUES ( ?, ?, ?, ? ) RETURNING id: 'level2', '2019-10-28T07:43:30', '2019-10-29T07:43:30', 'user11'

要求显示user1和user2,而是显示user5和user1

亚历克斯·G

这是因为与具有级别1的用户相比,user5在数据库中添加的时间要晚一秒钟,因此,它们按该顺序显示,因为它们是按data_begin按功能降序排列的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL 按收到意见的最高数量对数据库中的用户进行排序

使用MVC5中的现有用户数据库进行复杂身份验证

使用单独的现有用户数据库进行 Django 登录

PHP按域名对数据库进行排序

如何按日期对数据库进行排序?

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

更新数据库中的现有用户数据

VB-如何按升序或降序对数据库中的结果进行排序

Rails如何按特定顺序对数据库中的记录进行排序?

使用 Django 中的标题按字母顺序对数据库进行排序

按列对数据框多索引级别进行排序

将@RolesAllowed注释应用于数据库中存储的现有用户

R:按字母数字列对数据框中的所有列进行排序

使用R中多列的条件对数据进行排序

生成多列以在R中对数据进行排序

按列对数据框中的某些行进行排序

按R中的ALL列对数据框进行排序

在 Firebase 实时数据库中按分数对用户进行排序

按列值对数据框中具有相同索引的值进行排序

通过字符串中的数字对现有数据库进行排序

反应-验证数据库中是否有用户

按列对数据框进行排序

我无法使用neDB数据库按字母顺序对数据进行排序

如何使用php在ejabberd数据库中添加现有用户的VCard详细信息

在GridView Yii2中对数据进行排序和过滤,其中列不在数据库中

熊猫:按A列对数据进行分组,按B列的现有值过滤A

如何按父项对数据库记录进行排序

按数据库中的指定字段对所有结果进行排序

用户选择一列时,按两列对数据框进行排序