2014-11-05 2 views
0
SELECT Field1 
FROM Table 
WHERE Field1 BETWEEN "A%" AND "D%" 

данные Примера:SQL МЕЖДУ недостающих данных

A432434324324 
B435435435 
C5654664546 
D5465465546546 
A768677687 
B8768678768 
A65446456546 
B876867877868 

результата запроса не будет включать в себя линию «D», любые идеи, как с этим бороться? (Мне нужно работать с текстом, а не с цифрами).

+0

@Harry: Вы прочитали вопрос и пропустили код? –

+0

@Harry: Это связано как с MySQL, так и с MySQL. –

+0

Я прочитал его, простую ошибку с копией паттерна @juergend – Haris

ответ

2

Оставьте вне подстановочные и попробовать:

WHERE Field1 >= 'A' AND Field1 < 'E' 

Или:

WHERE LEFT(Field1, 1) BETWEEN 'A' and 'D' 

'%' подстановочные используется для LIKE, а не для других струнных сравнений.

Две ноты:

  • Первый вариант лучше, потому что это позволит MySQL использовать индекс на Field1.
  • Использовать одинарные кавычки для строк и констант даты; это общий синтаксис для всех баз данных.
0

Вы не можете использовать подстановочный знак в функции «между». С вами Query вы получаете все значения между знаками A и% и D и знаком%. Где знак% перед номерами.

0

подстановочные знаки используются в поисках. Здесь РСУБД воспринимает их как литералы. Итак, вы получаете все строки, которые начинаются с a и имеют второй символ со значением, превышающим значение «%», и получают все строки до «D» со вторым символом со значением, меньшим, чем значение ' %».

попробуйте между «A» и «DZZZ» или что-то в этом роде.

Смежные вопросы