Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Tester64
397 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
1

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

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

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

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

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

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

Хотя-бы в какую сторону копать? Like? Copy? Left? REGEXP?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2015, 16:02
Ответы с готовыми решениями:

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

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

Запрос с сравнением символов
Добрый день, появилась задачка с решением которой никак не могу разобраться. Имеются две таблица, в...

Запрос к БД со сравнением строк
Здравствуйте форумчане, подскажите, пожалуйста, как правильно оформить запрос к БД Access. Мне...

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

10
androbro
358 / 314 / 72
Регистрация: 17.10.2014
Сообщений: 925
13.05.2015, 16:19 2
Лучший ответ Сообщение было отмечено Tester64 как решение

Решение

Tester64,
MySQL
1
...WHERE name LIKE '%80000'
не?
1
Tester64
397 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
13.05.2015, 16:32  [ТС] 3
Сработало! Спасибо!

А можно сделать выборку так чтобы из того-же списка получить только с "-80" на определенной позиции от одного из концов строки?
0
androbro
358 / 314 / 72
Регистрация: 17.10.2014
Сообщений: 925
13.05.2015, 16:45 4
Цитата Сообщение от Tester64 Посмотреть сообщение
на определенной позиции от одного из концов строки?
c подчеркиванием наверн можно поэкспериментировать.
MySQL
1
WHERE name LIKE '%80___'
1
13.05.2015, 16:45
Tester64
397 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
13.05.2015, 16:58  [ТС] 5
Спасибо!
И последнее, можно ли сделать выборку с игнорированием пробелов и "-"?
типа "123454-80000" найти по "5480000"?
0
androbro
358 / 314 / 72
Регистрация: 17.10.2014
Сообщений: 925
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
424 / 405 / 67
Регистрация: 06.10.2012
Сообщений: 1,741
13.05.2015, 18:54 7
Tester64, не помню, можно ли использовать в Андроидной SQLite хранимые функции. Если нет, то можно попробовать добавить дополнительное поле, в котором хранить данные без пробелов и минусов.
1
Tester64
397 / 357 / 47
Регистрация: 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
358 / 314 / 72
Регистрация: 17.10.2014
Сообщений: 925
14.05.2015, 08:46 9
Tester64,
Цитата Сообщение от Tester64 Посмотреть сообщение
А это похоже уже как-то встроено
да кстати, есть же телефоны в которых при наборе номера из контактов предоставляется наиболее похожий номер, вот это по всей видимости Вы и накопали
0
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
14.05.2015, 09:15 10
Цитата Сообщение от Tester64 Посмотреть сообщение
вопрос решил средствами самого андроид апи
ну, и кинул бы сюда
0
Tester64
397 / 357 / 47
Регистрация: 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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2015, 10:09

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой...

Найти и вывести символы второй строки не совпавшие с символами первой строки
Только начал изучать assemler. Задача: Реализовал:1.Написать программу, выполняющую следующую...

Заменить символы части строки s начиная с позиции n символами строки s1
Помогите пожалуйста исправить ошибку в программе которая: заменяет символы части строки s начиная...


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

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

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