gpt4 book ai didi

mysql - 比较不同行和列的值以获得单一结果

转载 作者:行者123 更新时间:2023-11-29 02:30:55 35 4
gpt4 key购买 nike

这是我的场景描述:

我的表格:

ID name width1 width2 parameter1 parameter2 code
1 AAA 0 10 500 750 10001
2 AAA 0 10 750 1250 10002
3 AAA 0 10 900 1400 10003
4 AAA 0 10 1150 1650 10004
.................................................
.................................................
.................................................

假设我正在处理一些具有自己属性的“主题”。根据主题属性和一些具有相同属性的计算,我应该从该表中获取“代码”。

因此,我目前正在使用的这个主题的名称:AAA,宽度:5,通过我的计算,我得到参数:1000 。在我拥有所有必要的属性后,我可以将它们与 myTable 中的行进行比较。为了看得更清楚,我将从该表中选择所有内容,但我的目标是获取代码。这是查询:

SELECT * FROM myTable WHERE name="AAA" AND 5>=width1 AND 5<=width2 AND 1000>=parameter1 AND 1000<=parameter2

在此之后我得到这两行:

ID name width1 width2 parameter1 parameter2 code
2 AAA 0 10 750 1250 10002
3 AAA 0 10 900 1400 10003

只是提一下,这里可以是一行。但是,如果我得到两行,我需要执行以下操作。我的全部注意力都集中在这些参数上,我正在比较第一行中我的参数和 parameter2 之间的分布以及第二行中我的参数和 parameter1 之间的分布。

parameter -> parameter2
1250 - 1000 = 250
&
parameter1 -> parameter
1000 - 900 = 100

因此,如果 spread1:250 > spread2:100 取 code2:00002,否则取 code3:00003。

我的问题是,如何比较不同行和列的值?如您所见,我有两行和来自不同列的值。我需要的是一种选择这些特定值进行比较的方法。

谢谢。

最佳答案

好像是Greatest from Least解决的,所以一开始我们取最小的值然后排序这个下降。

SELECT 
code
FROM
myTable
WHERE
name="AAA"
AND
5 >= width1
AND
5 <= width2
AND
1000 >= parameter1
AND
1000 <= parameter2
ORDER BY
Least( parameter2-1000, 1000-parameter1 ) desc
LIMIT 1;

SQL Fiddle

关于mysql - 比较不同行和列的值以获得单一结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320616/

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