Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Sqlite запрос со сравнением строки с последними 5ю символами - Программирование Android

13.05.2015, 16:02. Просмотров 513. Ответов 10
Метки нет (Все метки)

Гуру SQLite, помогите!

Есть таблица в которой одно из строковых полей выглядит так:

123454-80000
984230-80000
849037-80000
489026-80000
489026-90000
489026-23423

мне надо отобрать только те что заканчиваются на "80000"

Хотя-бы в какую сторону копать? Like? Copy? Left? REGEXP?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2015, 16:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Sqlite запрос со сравнением строки с последними 5ю символами (Программирование Android):

Как именно можно сделать SQLite запрос, если запрос уже сформирован? - Программирование Android
Здравствуйте. Помогите понять , как именно можно сделать SQLite запрос , если запрос уже сформирован Перечитал кучу информации но не могу...

SQLite запрос - Программирование Android
Добрый день! Не могу разобраться как писать запросы SQL. Предположим, у меня есть таблица Events в базе SQLite (см. вложенную...

SQLite запрос - Программирование Android
Здраствуйте, у мене есть таблица events... там есть поле action_date, в етом поле дата и время в секундах, я не знаю как мне написать...

SQLite запрос - Программирование Android
ищу минимальное значение в столбце и хочу вывести его в переменную . int nameColMill = cursor.getColumnIndex("val_two"); ...

SQLite и древовидный запрос - Программирование Android
Привет! Создаю в SQLite browser древовидный запрос, вот его часть. select * from rubric where id in ( WITH tree (id) AS ( ...

Некорректно выполняется запрос к SQLite - Программирование Android
Здравствуйте! Необходимо сделать выборку данных из БД по двум условиям + еще максимум по третьему столбцу: public List<Table.Lesson>...

10
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
13.05.2015, 16:19 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Tester64,
MySQL
1
...WHERE name LIKE '%80000'
не?
1
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
13.05.2015, 16:32  [ТС] #3
Сработало! Спасибо!

А можно сделать выборку так чтобы из того-же списка получить только с "-80" на определенной позиции от одного из концов строки?
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
13.05.2015, 16:45 #4
Цитата Сообщение от Tester64 Посмотреть сообщение
на определенной позиции от одного из концов строки?
c подчеркиванием наверн можно поэкспериментировать.
MySQL
1
WHERE name LIKE '%80___'
1
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
13.05.2015, 16:58  [ТС] #5
Спасибо!
И последнее, можно ли сделать выборку с игнорированием пробелов и "-"?
типа "123454-80000" найти по "5480000"?
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
13.05.2015, 17:25 #6
Tester64,
Цитата Сообщение от Tester64 Посмотреть сообщение
типа "123454-80000" найти по "5480000"?
конкретно для этого случая можн так: "%54_80000"
а по игнору чет ничего не встретил: "sqlite like ignore single character"

Добавлено через 7 минут
Tester64, а такое прокатывает в sqlite?
"%54[ -]80000" - типа между ними могут быть только пробелы и тире
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
13.05.2015, 18:54 #7
Tester64, не помню, можно ли использовать в Андроидной SQLite хранимые функции. Если нет, то можно попробовать добавить дополнительное поле, в котором хранить данные без пробелов и минусов.
1
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
13.05.2015, 21:14  [ТС] #8
вопрос решил средствами самого андроид апи... сам не знаю как у них начинка устроена...

Детально изучаю Котакт-телефоны-АПИ. Там многое на записи в базу работает. Можно записать телефоны уровня +38(050)123-4567. Сравнивать в таком режиме с образцом - это ад. Учитывая что база не моя - поля добавлять не могу. Я к ней вообще через кривое апи только добираюсь...
Но нашел способ (встроенный) который находит сходство даже между
+38(050)123-4567 = 123-4567
+38(050)123-4567 = 0501234567
+38(050)123-4567 = 8050123-456-7
+38(050)123-4567 = +38-050-1234567
(и еще десяток коомбинаций опробовал)

Раньше хотел свою систему поиска кода по номеру телефона писать... Ступенчато - до 7 знаков, до 10, без пробелов и "-", без скобок... А это похоже уже как-то встроено...
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
14.05.2015, 08:46 #9
Tester64,
Цитата Сообщение от Tester64 Посмотреть сообщение
А это похоже уже как-то встроено
да кстати, есть же телефоны в которых при наборе номера из контактов предоставляется наиболее похожий номер, вот это по всей видимости Вы и накопали
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
14.05.2015, 09:15 #10
Цитата Сообщение от Tester64 Посмотреть сообщение
вопрос решил средствами самого андроид апи
ну, и кинул бы сюда
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
14.05.2015, 10:09  [ТС] #11
Цитата Сообщение от androbro Посмотреть сообщение
вот это по всей видимости Вы и накопали
Цитата Сообщение от Armagedo Посмотреть сообщение
ну, и кинул бы сюда
Я не знаю как это реализовано средствами запросов!
Могу выдать функцию запроса к контакт-апи, но это не особо похоже на работу с базой. Там целый интерфейс отвечает за "похожесть"... Я его нарыл и протестил на 20-30 номерах (насколько фантазии хватило "попортить" номера)

Java
1
2
3
4
5
6
7
Uri uri1 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone_number));
Cursor cs= context.getContentResolver().query(uri1, new String[]{"_id"}, null, null, null);
long res0 = -1;
cs.getString(cs.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
if (cs.moveToFirst()) res0 = cs.getLong(0);
cs.close();
return res0;
Как видите это не похоже на использование LIKE в запросах... я понятия не имею как это сделано "внутри" запроса... Похоже есть некая функция "нормирования" номеров. Возможно они даже встроили ее недокументированной функцией в сборку SQLite...

главное - заработало! Вопрос снимаю...
0
14.05.2015, 10:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2015, 10:09
Привет! Вот еще темы с ответами:

SQLite запрос для списка с подчиненными - Программирование Android
Помогите пожалуста составить запрос (подзабыл азы SQLite - давно не работал). Скажите хотя-бы ВОЗМОЖНО ЛИ ПОДОБНОЕ? (что-бы время зря не...

Определить, совпадают ли первые два символа первой строки с двумя последними символами второй строки? - Pascal
Помогите решить задачку... Определить совпадаеют ли первые два символа первой строки с двумя последними символами второй...

Вставить пробел перед последними 2-мя символами в слова, имеющего минимальную (заданную) длину - Turbo Pascal
Люди, добрые! Помогите пожалуйста решить задачу Вот и сама задача Вставить пробел перед последними 2-мя символами в слова, имеющие...

Запрос к БД со сравнением строк - C#
Здравствуйте форумчане, подскажите, пожалуйста, как правильно оформить запрос к БД Access. Мне нужно взять значение Имя(name) элемента...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru