基本上我有相册,其中包含50张图像init。.现在,如果我显示图像列表,我知道从哪一行显示(显示:50的20到30),意味着从20到30显示10行。问题是,我想选择一个图像,但仍然显示它选择了哪个位置,因此我可以来回移动,但也要保持该位置。
就像如果我选择第5张图像,其ID为’sd564’,我想显示(50张图像中的6张),表示您正在看到50张图像中的6张..如果我得到下一行ID并显示,那么我想展示(50张图片中的7张)。
好吧,我可以轻松地从分页指针完成所有这些操作,例如在url中说(after = 5,after = 6)…它随位置移动,但是如果我没有这个(after
= 6)并且只有一个id,该怎么办?我怎么还能那样做?
我也不想使用(after = 6),因为它的动态站点和图像会添加和删除,因此放置chnages并与其他人共享并返回相同的旧链接,那么它将是错误的位置。
我应该为此运行哪种SQL查询?
目前我有
select * from images where id = 'sd564';
显然,我需要在查询中添加限制或其他内容以获取我想要的内容,或者运行另一个查询以获取结果,同时也要保留此旧查询。无论如何,我只想定位。我希望你能帮助我解决这个问题
示例: http
:
//media.photobucket.com/image/color%20splash/aly3265/converse.jpg
样本http://img41.imageshack.us/img41/5631/viewing3of8240.png
相册查询请求 (请在下面查看帖子)
select images.* from images, album
where album_id = '5'
and album_id = image_album_id
order by created_date DESC
limit ....;
假设created_date
每个元素album_id
(album_id
和created_date
)对于中的所有行都是唯一的images
,则这是:
select i1.*, count(*) as position
from images i1
inner join images i2
on i1.album_id = i2.album_id -- get all other pics in this album
and i1.created_date >= i2.created_date -- in case they were created before this pic
where i1.album_id = 5
group by i1.created_date
将会可靠地为您获取图像及其位置。请理解,这仅在(album_id,created_date)在整个图像表中是唯一的情况下才能可靠地工作。如果不是这种情况,则该位置将不可靠,并且由于可能您看不到所有照片GROUP BY
。还要注意,这样的GROUP BY
子句仅列出列表中出现的某些列SELECT
(在本例中为images.*
)在大多数RDBMS-
es中无效。有关此问题的详细讨论,请参见:http : //dev.mysql.com/tech-
resources/articles/debunking-group-by-myths.html
通过做这个:
select i1.*, count(*) as position
from images i1
inner join images i2
on i1.album_id = i2.album_id -- get all other pics in this album
and i1.created_date >= i2.created_date -- in case they were created before this pic
where i1.album_id = 5
group by i1.created_date
having count(*) = 4
您选择第4个位置的图片(请注意having count(*) = 4
)
通过做这个:
select i1.*, count(*) as position
from images i1
inner join images i2
on i1.album_id = i2.album_id -- get all other pics in this album
and i1.created_date >= i2.created_date -- in case they were created before this pic
where i1.album_id = 5
group by i1.created_date
having count(*) between 1 and 10
您选择位置1到10的所有照片(having
再次注意该条款。)
当然,如果您只想要一个特定的图像,则可以简单地执行以下操作:
select i1.*, count(*) as position
from images i1
inner join images i2
on i1.album_id = i2.album_id -- get all other pics in this album
and i1.created_date >= i2.created_date -- in case they were created before this pic
where i1.image_id = 's1234'
group by i1.created_date
这将正确报告图像在相册中的位置(当然,假设image_id在images表中是唯一的)。在这种情况下,您不需要Have子句,因为您已经精确定位了想要的图像。
问题内容: 在我的Flask-RESTful API中,假设我有两个对象,用户和城市。这是一对多关系。现在,当我创建我的API并向其中添加资源时,我似乎可以做的就是将非常简单的通用URL映射到它们。这是代码(不包括无用的东西): 如你所见,我可以做所有想实现非常基本的功能的事情。我可以获取,发布,放置和删除两个对象。但是,我的目标有两个: (1)能够使用其他参数(例如城市名称)而不只是城市ID进行
问题内容: 我想在主要评论之后显示最新评论及其回复。显然,答复将具有最新日期,因此我无法按日期对日期进行排序,因为答复将位于主要日期之上。我不确定如何通过一个查询正确执行此操作。任何想法都可以。 数据库转储:http : //pastie.org/576963 问题答案: 我猜文章的“回复ID”为0,评论的文章号为。如果这是您的设计,这应该可以工作: 添加: 感谢您在评论中提供其他信息。将结果按所
什么是 Nutz.Dao 中的复杂SQL条件 对于 Nutz.Dao 来说,它本质上就是将你的 Java 对象转化成 SQL,然后交给 JDBC 去执行。 而 SQL 中,当执行数据删除和查询操作时,最常用的就是 WHERE 关键字。 WHERE 关键字后面的就是所谓的复杂查询条件 Nutz.Dao 将如何如何使用这个条件 Dao 接口的 clear 方法和 query 方法的第二个参数,就是为了
SQL有以下优点: 快速 - 使用SQL查询,用户可以快速有效地从数据库中检索大量记录。 无需编码 - 在标准SQL中,管理数据库系统非常容易。它不需要大量代码来管理数据库系统。 明确界定标准 - ISO和ANSI是长期建立使用的SQL数据库标准。 可移植性 - SQL可用于笔记本电脑,PC,服务器甚至某些手机。 互动语言 - SQL是用于与数据库通信的域语言。 它还用于在几秒钟内接收复杂问题的答
如果我想要浮点数中的点后3位数字,该怎么办? 如果那么我想要的值为
我想对无序的复杂浮点数组进行鼻子测试。 例如,如果 和 断言应该成功,因为它们具有大致相同的值和相同的次数。顺序无关紧要。 对于常规浮点数,很好,但这在这里不起作用,因为它首先按实部排序,然后按虚部排序,因此由于浮点数错误,它们被排序为: 有没有内置的方法可以做到这一点?如果没有,我想我可以求助于类似cplxreal的东西,但这似乎需要添加到测试文件中。