gpt4 book ai didi

mysql - 选择 'most appropriate' 记录的 SQL 条件逻辑

转载 作者:行者123 更新时间:2023-12-01 00:41:48 27 4
gpt4 key购买 nike

我大大简化了整个系统,但它足以解决我的特定问题。我在一张表格中存储了一张照片的信息,该照片已缩小多次(保持其纵横比)。我正在尝试为我的表设计一个查询,以获取最合适的照片。

我说的最合适的是

  1. 如果请求宽度为 705px,则在本例中将返回最大的宽度 700x394

  2. 如果我请求 50px 宽度,那么在这种情况下将返回最小的宽度 150x84

样本数据照片尺寸调整

  700x394
400x200
300x169
150xx84

更多信息

  • 数据库中的图像都使用引用边缘按比例缩小。
  • 引用边是最长的边,这意味着如果我收到一张人像照片,它会按比例缩小到 *x700、*x400、*x300、*x150。
  • 如果图片是横向的,它会以同样的方式缩小 700x*、400x*、300x*、150x*

此查询部分适用于从 0 到最大边缘或更低的边缘。但是,如果我请求的尺寸超过最大宽度,它就不起作用。

select * from images
WHERE width >= 750
order by width asc
limit 1

我也有这个工作技巧来改 rebase 于纵向或横向的逻辑

IFNULL(((width >= height AND width >= $length ) OR (width <= height AND height >= $length )), TRUE)

我有一个 SQL Fiddle,我在这里列出了我的问题/问题

任何见解将不胜感激。我知道我可以读入所有数据,然后用我的后端语言(例如 PHP)执行此逻辑,但这是对数据管道的高要求,并希望将开销降至最低。

fiddle : http://sqlfiddle.com/#!9/91ca9/2

最佳答案

试试这个

SELECT * 
FROM images
ORDER BY ABS(width-750) ASC
LIMIT 1

使用宽度的绝对值减去请求的尺寸,它将返回最接近的图像尺寸。我相信您可以调整它,因为您还需要检查高度

关于mysql - 选择 'most appropriate' 记录的 SQL 条件逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com