2014-09-15 6 views
0

У меня есть таблица, содержащая имена полей как mgrs, значение, которое хранится в полях mgrs, похоже на '42SWC227821555', может содержать больше символов и может содержать строчные буквы. Итак, теперь я хочу искать записи между двумя mgrs, так как я могу это сделать? могу ли я преобразовать значение mgrs в integer первым, а затем использовать в промежутке?Как использовать буквенно-цифровые поля с предложением BETWEEN в Mysql?

+0

У вас есть фиксированный шаблон строк в ваших значениях? – AK47

+0

Никакая строка не отличается и имеет разную длину. – jones

ответ

2

Вместо BETWEEN пункт использование STRCMP(expr1, expr2) функции для операций сравнения строк:

WHERE STRCMP(mgrs, '42SWC227821555') >= 0 AND STRCMP(mgrs, '42SWC227821570') <= 0 
0

Я приведу несколько шагов, а не полный ответ.

  1. Удалить все алфавиты от вас ценят, означает, что вы можете иметь 1 более строгой функцию столбца с использованием перечисленной на this link
  2. Примените фильтр на этой колонке.
0

Вы можете использовать строковые выражения с BETWEEN сравнения.

SELECT '42SWC2278215551' BETWEEN '42SWC227821555' AND '42SWd227821555' 
-> 1