mysql - 如何在表中查找带有逗号分隔值和 id 的最大值

标签 mysql codeigniter

我在这个查询中遇到一些问题,要在这个表中找到最大 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/

相关文章:

mysql self 加入group_concat并且没有重复

php - MySqli 无法正常工作

php - MySQL 的内存缓存如何工作?

php - 从数组中的每个值中删除破折号,然后重建数组

javascript - 如何删除提交按钮并保存图像以及在codeigniter中使用ajax显示图像?

php - Codeigniter - 显示与当前 session 的用户 ID 相关的数据库记录

mysql - 如何根据下表选择和分组mysql数据

MySQL(1 个命令获取 2 个表)

php - 如何在 Codeigniter 中生成此 MySQL 代码?

CodeIgniter ActiveRecord 乘法