我在这个查询中遇到一些问题,要在这个表中找到最大 item_cost
OrderID | item_ids| item_cost
---------------------------------------------------------
1 1,2,3 22,88,77
2 2,4 83,26
我找到了这个函数
SELECT * FROM scb.invoice_out
where FIND_IN_SET('2',item_ids)
但答案是完整的行,我只需要单个项目的最大值(item_cost)
OrderID | item_ids| item_cost
---------------------------------------------------------
1 1,2,3 22,88,77
2 2,4 83,26
有人有同样的问题吗?
最佳答案
您的问题的 mysql 解决方案可能是
select
max(SUBSTRING_INDEX(SUBSTRING_INDEX(`item_cost`, ',', numbers.n), ',', -1)) as max_id
from
(select 1 n union all
select 2 union all select 3 union all
select 4 union all select 5) numbers INNER JOIN invoice_out
on CHAR_LENGTH(`item_cost`)
-CHAR_LENGTH(REPLACE(`item_cost`, ',', ''))>=numbers.n-1
where
FIND_IN_SET('2',item_ids)
order by
OrderID, n
关于mysql - 如何在表中查找带有逗号分隔值和 id 的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35295242/