Сортировка выборки 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
