Как искать между двумя номерами, которые имеют префикс? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь искать между двумя числами в моей базе данных. Проблема в том, что перед номерами стоит префикс, т. Е. LH123

. Я знаю, что искать номера я могу просто:

and JobNo >=  38308 and JobNo <= 38337

Но не уверен, как искать, когда у номера есть префикс перед ним. Я пытался использовать BETWEEN, но это не просто возвращает числа, которые я искал. Это должно вернуть 10, но запрос не останавливается, когда он достигает LH7010 и продолжает работать, пока не достигнет LH700999.

and JobNo BETWEEN 'LH7000' and 'LH7010'

Есть ли способ использовать BETWEEN только для поиска этих точных чисел или есть другой способ поиска?

1 Ответ

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

Если префикс всегда имеет длину 2 символа, извлеките целую часть и сравните целые числа следующим образом:

and substr(jobno, 3) + 0 between substr('LH7000', 3) + 0 and substr('LH7010', 3) + 0 

MySql неявно преобразует строку в целое с помощью ... + 0

...