-3

I have some complicated task. I have some data in email column:

borispil-admin@fff.com

borispil2-admin@fff.com

borispil5-admin@fff.com

I need to get biggest number. In example its 5.

P.S. some time names can ends with number:

kuhari24-admin@fff.com

kuhari242-admin@fff.com

kuhari243-admin@fff.com

Here the real name is kuhari24. And biggest number is 3. Here is my answer, but it very ugly. Have some one better idea?

SELECT REPLACE(
    (
        SELECT REPLACE(
            (
                SELECT MAX(email) 
                FROM account 
                WHERE email LIKE 'borispil%'
            )
        , '--admin@fff.com', '')
     )
, 'borispil', '') AS maxNumber
Anton Kolosok
  • 367
  • 2
  • 13

1 Answers1

-1

You can easy use REPLACE and +0 to find the Integer after a Name

SELECT field-realname, MAX(REPLACE(fiel-with-email,field-realname,'') + 0) as maximum_val FROM your_table group by fiels-realname;

Sample

MariaDB [(none)]> select REPLACE('kuhari243-admin@fff.com','kuhari24','') + 0;
+------------------------------------------------------+
| REPLACE('kuhari243-admin@fff.com','kuhari24','') + 0 |
+------------------------------------------------------+
|                                                    3 |
+------------------------------------------------------+
1 row in set, 1 warning (0.00 sec)

MariaDB [(none)]>
Bernd Buffen
  • 12,768
  • 2
  • 20
  • 31