Сортировка выборки SQL по регулярному выражению

есть у меня в БД таблица devdata с данными предположим так выглядит

id IND(9) AI
name VARCHAR(255) 
...
scount VARCHAR(255)

суть в том что в поле scount информация помещается по определенному шаблону примерно так: 200-2000^3434^54545|120-400^3333^4444

я делаю стандартный запрос на php примерно такой

$tmp = mysqli_query($hdb,"SELECT * FROM idevdata ORDER BY scount REGEXP '/^[^^]*\^\K[^^]*(?=\^)/' ASC");

мне нужно что бы сортировка производилось по цифрам между мервыи ^ ^ (т.е. в этом примере 200-2000^3434^54545|120-400^3333^4444 будет выбираться 3434) регулярное выражение мне уже помогли найти правильно но теперь почему то такой запрос выдает уже ошибку num_rorws - те. запрос не прошел

  Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in

подскажите пожалуйста что я не правильно сделал в системе регулярных выражений в sql


Ответы (1 шт):

Автор решения: Николай

Мне кажется, что данный запрос не выполняет желаемого... Куда более правильно будет преобразовать нужные данные и уже после преобразования их сортировать...

SELECT *, SUBSTRING_INDEX((SUBSTRING_INDEX(scount, '^', 2)), '^', -1) as sort FROM devdata ORDER BY sort ASC 

Результат выполнения: Наглядная сортировка

→ Ссылка