繁体   English   中英

MySQL - 最小/最大

[英]MySQL - MIN / MAX

我的数据库中有一个字段,它可以包含数字(例如 8.00)或范围数字(例如 8.00 - 10.00)。

如果您将每个数字作为单独的数字,我需要从表中获取 MIN() 和 MAX()。 例如,当范围为 8.00 - 10.00 时,MIN 为 8.00,MAX 为 10.00

例子:

PRICE: 2.00-4.00
PRICE: 2.00-10.00
PRICE: 3.00
PRICE: 8.00

MIN = 2.00
MAX = 10.00

任何人都可以帮忙吗?

谢谢

您可以使用substring_indexunion

select min(col),
max(col) 
from (
select 
substring_index(PRICE,'-',1) * 1 col
 from Table1
union 
select 
substring_index(PRICE,'-',-1) * 1 col2
from Table1
  ) t

演示

您应该将数据库规范化为 3NF 或 BCNF,以避免出现更多问题。 但是,如果您只是对数据库中的内容感到好奇,则可以尝试以下查询:

询问

SELECT
  MIN(TRIM(CASE WHEN INSTR(val, "-") > 0 THEN SUBSTRING(val, 1, INSTR(val, "-")-1) ELSE val END)) min,
  MAX(TRIM(CASE WHEN INSTR(val, "-") > 0 THEN SUBSTRING(val,    INSTR(val, "-")+1) ELSE val END)) max
FROM test;

示例输出

+-------+-------+
| min   | max   |
+-------+-------+
| 1.00  | 30.00 |
+-------+-------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM