1
7
只有一个
MySQL还缺少排名功能,您需要处理数据中的差距(由于条目被删除而丢失)。唯一的选择是在select语句中使用递增变量:
现在我们可以得到一个连续编号的行列表,因此我们可以使用:
使用7作为@Midpoint的值,
但如果你还想用
|
2
4
我使用以下代码解决此问题:
|
3
2
我不相信你能在工会的不同部门有一个“订单依据”。你能不能这样做:
|
4
1
我同意马隆索建议的答案(+1),但如果你用id=1试试,你只会得到5个缩略图。我不知道你是否想要这种行为。如果你总是想要10个拇指,你可以尝试:
问题是select top依赖于数据库(在本例中是一个SQL Server子句)。其他数据库有类似的子句: 神谕:
MySQL:
所以也许你可以用最后一个。 如果我们这样做,如果你想要最后10个拇指,我们也会有同样的问题。举例来说,如果我们有90个拇指,我们给出一个id=88…您可以通过添加或条件来解决它。在MySQL中,会出现如下情况:
|
5
1
如果您愿意使用临时表,可以将原始查询分解为使用临时表。
|
6
1
尝试 联合所有 相反。联合要求服务器确保结果唯一,这与您的排序冲突。 |
7
0
我必须解决一个类似的问题,但是需要考虑这样的情况:我们总是得到相同数量的行,即使所需的行接近结果集的顶部或底部(即不完全在中间)。 这个解决方案是来自omg ponies响应的一个调整,但是rownum在所需行上最大化:
下面是正在发生的事情的一个分解: 注意:在下面的示例中,我创建了一个包含20行的表,并删除了ID6和9,以确保IDS中的间隙不会影响结果。 首先,我们为每一行指定一个重心值,该值以您要查找的特定行为中心(在本例中,ID为7)。行越接近所需行,值越高:
返回:
接下来,我们根据重力值和所需行数的限制来排序所有结果:
返回:
此时,我们已经拥有了所有需要的ID,我们只需要将它们按原始顺序进行排序:
返回:
|
hello_programmers · Mysql从其他表输出一列 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
Kugelfisch · 用php为数据库加密数据 1 年前 |