I saw this part of MySQL query code in the Project I handle. The code was coded 5 years ago.
CAST((CASE
WHEN cat.title REGEXP "^[0-9][0-9][0-9][0-9]" THEN LEFT(cat.title,4)
WHEN cat.title REGEXP "^[0-9][0-9][0-9]" THEN LEFT(cat.title,3)
WHEN cat.title REGEXP "^[0-9][0-9]" THEN LEFT(cat.title,2)
WHEN cat.title REGEXP "^[0-9]" THEN LEFT(cat.title,1)
ELSE NULL END) AS SIGNED) int_cat,
IF((CASE
WHEN cat.title REGEXP "^[0-9][0-9][0-9][0-9]" THEN LEFT(cat.title,4)
WHEN cat.title REGEXP "^[0-9][0-9][0-9]" THEN LEFT(cat.title,3)
WHEN cat.title REGEXP "^[0-9][0-9]" THEN LEFT(cat.title,2)
WHEN cat.title REGEXP "^[0-9]" THEN LEFT(cat.title,1)
ELSE NULL END) IS NULL, cat.title, NULL) int_cat_string,
can someone explain how this query working? what is the usage of REGEXP and THEN LEFT
I want to refactor this code. I just a hard time thinking this area of QUERY.