[英]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_index
和union
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.