powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Не срабатывает WHERE в запросе
6 сообщений из 6, страница 1 из 1
Не срабатывает WHERE в запросе
    #37461086
RIP_RUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Пришу приложение на Android. Используется SQLite. Имеется запрос:
Код: plaintext
1.
SELECT CLIENT_ID, CLIENT_PARENTID, CLIENT_NAME FROM CLIENTS_SPR WHERE rtrim(ltrim(CLIENT_PARENTID)) = '    0     ' ORDER BY CLIENT_NAME ASC
Вообще в запросе ... rtrim(ltrim(CLIENT_PARENTID)) = ' 0 ' ... вместо ' 0 ' будет динамически менятрся код. Но пока даже так не рабоатет.
Поле CLIENT_PARENTID типа TEXT. В нем записанные значени всегда имеют длину в 9 символов. Например ' S1 ' или ' YA ' .
Стоит убрать условие
Код: plaintext
WHERE rtrim(ltrim(CLIENT_PARENTID)) = '    0     '
и запрос нормально выбирает данные.
До этого работа с MS SQL и MY SQL, этот запрос там отрабатывает на ура в вот в SQLite не хочет. Помогите разобрася в чем проблема.
...
Рейтинг: 0 / 0
Не срабатывает WHERE в запросе
    #37461103
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RIP_RUS,

Код: plaintext
SELECT rtrim(ltrim('    0     ' ))

взрыв мозга отменяется?
...
Рейтинг: 0 / 0
Не срабатывает WHERE в запросе
    #37461115
RIP_RUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного неправельно написал.
Просто в процессе разработки. В прочем не важно жаже если написать
Код: plaintext
1.
SELECT rtrim(ltrim('    0     ' )) ='0'
все равно не работает
...
Рейтинг: 0 / 0
Не срабатывает WHERE в запросе
    #37462088
maximand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RIP_RUS,

rtrim(ltrim(CLIENT_PARENTID)) = ' 0 ' никогда не TRUE
(инымы словами ты сначала ибираешь все пробелы и проверяешь а есть ли пробелы помимо id)
исправь на rtrim(ltrim(CLIENT_PARENTID)) = '0'

regards,
Nikolya
...
Рейтинг: 0 / 0
Не срабатывает WHERE в запросе
    #37462200
RIP_RUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы. Я кажись разобрался в чем дело. При записи данных в базу данных в записываемой строке в конце строки стоял байт 0. А это соответственно терминатор строки. От люда и ноги растут я думаю.
Код: plaintext
1.
2.
 
rtrim(ltrim(CLIENT_PARENTID))
в этом случае делала из строки
Код: plaintext
1.
'     0    '
строку
Код: plaintext
1.
'0     '
Тоесть справа пробелы не обрезались это раз. И в условии WHERE изза того самого присловутого байта "0" условие дальше просто обрезалось. Из-за чего и скрипт не отробатывал.
...
Рейтинг: 0 / 0
Не срабатывает WHERE в запросе
    #37462373
RIP_RUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да как я и описа выше все дело было в том, что при записи данных в БД в записываемых строках в конце стоял 0-й байт.
Соответственно в запросе в условие WHERE подставлялась та самая злощастная строка с 0-м байтом и запрос просто обрубался.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Не срабатывает WHERE в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]