Ответить Создать тему

SQL оператор Like , маска типа '%[буквы]' не проходит

Теги: SQL
Setneros
post Jul 23 2011, 18:40 
Отправлено #1


Постоялец

Сообщений: 284



select dannie from tablica WHERE dannie like '%т%' ; проходит отлично

а вот

select dannie from tablica WHERE dannie like '%й' ; ничего не обнаруживает, хотя данные подходящие под такой критерий имеются

То есть я не могу искать данные по последним буквам


Какие варианты возникновения проблемы могут быть?

firebird 2.5 и delphi 7


Заранее благодарю

Сообщение отредактировал Snowm@n - Aug 28 2011, 03:03
Profile CardPM
  0/0  
SeaEng
post Jul 23 2011, 19:20 
Отправлено #2


Активный

Сообщений: 3 312



какой тип у этого поля? Первая причина, которая может быть - поле имеет размер фиксированной длины, например char(15), nchar(15)

Сообщение отредактировал Sergey Grigorev - Jul 23 2011, 19:20
Profile CardPM
  0/0  
Setneros
post Jul 23 2011, 19:50 
Отправлено #3


Постоялец

Сообщений: 284



Цитата(Sergey Grigorev @ Jul 23 2011, 20:20)
какой тип у этого поля? Первая причина, которая может быть - поле имеет размер фиксированной длины, например char(15), nchar(15)
*


char(300)

да, попробовал сейчас '%й%', находит.

получается, он видит строку как '...й.....' длиной 300 символов

А можно как то обрезать? Или сделать нефиксированной длины. Varchar как я понял тоже сохраняет конечные пробелы

Спасибо вам за помощь!

Я попробовал преобразовать char в varchar, очистил бд и снова загрузил данные. Но всё равно по прежнему.

Сообщение отредактировал Setneros - Jul 23 2011, 19:52
Profile CardPM
  0/0  
SeaEng
post Jul 24 2011, 12:26 
Отправлено #4


Активный

Сообщений: 3 312



да, char(300) добивает недостающие символы пробелами, в отличие от varchar(300), где 300 это всего лишь ограничитель.

Убедитесь, что размер поля действительно равен размеру текста, и нет конечных пробелов. Попробуйте сделать LIKE для trim(dannie) или rtrim(dannie), чтобы проверить это
Profile CardPM
  0/0  
Setneros
post Jul 25 2011, 22:42 
Отправлено #5


Постоялец

Сообщений: 284



Проблемка решена, спасибо.
Про процедуру вставки новой записи забыл просто.
Profile CardPM
  0/0  

ОтветитьTopic Options
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
Быстрый ответ
Кнопки кодов
 Расширенный режим
 Нормальный режим
    Закрыть все тэги


Открытых тэгов: 
Введите сообщение
Смайлики
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
         
Показать все

Опции сообщения