Sql 从数据库中选择错误
要求显示user1和user2,而不是显示user5和user1。 我使用Sql 从数据库中选择错误,sql,Sql,要求显示user1和user2,而不是显示user5和user1。 我使用DBIC_TRACE=1跟踪SQL生成的查询,结果是: 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',
DBIC_TRACE=1
跟踪SQL生成的查询,结果是:
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'
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'
有人能解释一下为什么会发生这种情况吗?级别为
1
和user2
的记录的date\u end
值为2019-10-29T07:43:29
,在查询中的限制之前。具有level1
和user2
的记录的date\u end
值是2019-10-29T07:43:29
,就在查询中的限制之前。谢谢您的回答!但是我注意到查询中的日期结束值是2019-10-28 07:43:30+0000。您能告诉我更多细节吗?因为这是一个不可靠的答案,有时我得到了正确的答案,有时我得不到。例如:我再次运行并显示user4和user5。谢谢!谢谢你的回答!但是我注意到查询中的日期结束值是2019-10-28 07:43:30+0000。您能告诉我更多细节吗?因为这是一个不可靠的答案,有时我得到了正确的答案,有时我得不到。例如:我再次运行并显示user4和user5。谢谢!