gpt4 book ai didi

mysql - 加入职位

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:06 26 4
gpt4 key购买 nike

我有表 basketsfruitsbasket_fruits(连接表:basket_id-fruit_id)。

我怎样才能返回篮子里每个水果的位置,这样我就会得到类似的东西

+---------------------------------------+
| basket_id | fruit_id | fruit_position |
|---------------------------------------|
| 1 | 2 | 1 |
| 1 | 5 | 2 |
+---------------------------------------+

水果位置只是返回的连接表中一行的数字(它不是列)。

Schema:
baskets: id, title
fruits: id, title
basket_fruits: id, basket_id, fruit_id

最佳答案

MySQL 不支持范围函数,因此您必须使用子查询:

SELECT  basket_id, fruit_id,
(
SELECT COUNT(*)
FROM basket_fruit bfi
WHERE bfi.basket_id = bf.basket_id
AND bfi.fruit_id <= bf.fruit_id
) AS fruit_position
FROM basket_fruit bf
WHERE basket_id = 1

或使用 session 变量(更快但依赖于未记录且可能在未来版本中中断的实现细节):

SET @rn = 0;

SELECT basket_id, fruit_id, @rn := @rn + 1 AS fruit_position
FROM basket_fruit bf
WHERE basket_id = 1
ORDER BY
fruit_id

关于mysql - 加入职位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294346/

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