Как сравнить символы в начале строки, не включая конечные числа или символы - PullRequest
1 голос
/ 05 февраля 2020

Мне нужно найти следующее наибольшее число, за исключением символов, которые я ищу; из столбца кодов.

Вот мой текущий запрос:

SELECT `code` 
FROM `users` 
WHERE `code` LIKE 'CR%' 
ORDER BY `code` DESC 
LIMIT 1;

Это прекрасно работает, если все коды такие:

CR52334
CR52333
CR52332

Однако есть случаи, когда коды похожи на это и в них более двух символов:

CRO6506
CRI3422
CR52334
CR52333
CR52332

Это искажает мои результаты. Мне нужны только строки, начинающиеся с "CR", а затем цифры.

Mysql Версия: Server version: 5.6.10-log - MySQL Community Server (GPL)

1 Ответ

2 голосов
/ 06 февраля 2020

Вы можете использовать оператор REGEXP , который доступен в MySQL 5.6:

where code regexp '^CR[0-9]+$'

Распределение регулярных выражений:

^        beginning of the string
CR       literal string 'CR'
[0-9]+   any number of digits (at least one)
$        end of the string

Вы можете уточните c - скажем, вы хотите ровно 5 цифр:

where code regexp '^CR[0-9]{5}$'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...