Búsqueda de sitios web

¿Encontrar el valor mínimo y máximo de una cadena con números separados por guión en MySQL?


Utilice la función MIN() junto con SUBSTRING() para el mínimo, mientras que MAX() para el máximo. Primero creemos una tabla:

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Value varchar(100)
   -> );
Query OK, 0 rows affected (0.76 sec)

Inserte algunos registros en la tabla usando el comando insertar:

mysql> insert into DemoTable(Value) values('10-20');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable(Value) values('200-100');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable(Value) values('780-235');
Query OK, 1 row affected (0.29 sec)

Muestre todos los registros de la tabla usando la declaración de selección:

mysql> select *from DemoTable;

Esto producirá el siguiente resultado:

+----+---------+
| Id | Value   |
+----+---------+
| 1 | 10-20    |
| 2 | 200-100  |
| 3 | 780-235  |
+----+---------+
3 rows in set (0.00 sec)

La siguiente es la consulta para encontrar el valor MIN() y MAX() de las subcadenas numéricas separadas de una cadena con guión:

mysql> select min(SUBSTRING_INDEX(Value, '-', 1)),
   -> max(SUBSTRING_INDEX(Value, '-', -1))
   -> from DemoTable;

Esto producirá el siguiente resultado:

+-------------------------------------+--------------------------------------+
| min(SUBSTRING_INDEX(Value, '-', 1)) | max(SUBSTRING_INDEX(Value, '-', -1)) |
+-------------------------------------+--------------------------------------+
| 10                                  | 235                                  |
+-------------------------------------+--------------------------------------+
1 row in set (0.04 sec)