|
2 / 2 / 0
Регистрация: 03.11.2014
Сообщений: 21
|
||||||
Правильный SQL запрос для реализации фильтра списка записей17.12.2014, 21:19. Показов 1420. Ответов 8
Метки нет (Все метки)
Привет всем!
Всю голову уже сломал - то ли через запрос нельзя такое реализовать и нужно в джава коде как-то прописывать, то ли я придумал несуществующий кейс...но вроде такое должно быть где-то: Кейс: вытягиваю из 3 полей Edittext значения , которые ввел юзер: Имя, Фамилия, Город. потом пишу запрос , чтобы система выдала в листвью все записи удовлетворяющие условиям: 1.Показать все записи в которых поля равны введенным юзером: Имя, Фамилия, Город 2. Если юзер не ввел Имя, то отобразить все поля равные Фамилия, Город 3. Если не ввел Фамилию, то все поля равные Имя, Город 4. Если не ввел Город, то все поля равные Имя, Фамилия. 5. Если не ввел Фамилию, Имя , то все поля равные Город 6. Если не ввел Имя, Город , то все поля равные Фамилия 7. Если не ввел Фамилия , Город, то все поля равные Имя Получается 7 условий. Вопрос : можно ли все эти 7 условия реализовать через один SQL запрос? Последняя моя попытка была:
Добавлено через 6 минут Но тут получается, что система выдает все поля без исключений, так как есть LIKE условие. Если условие убрать, то будет наоборот система будет выдавать только точные результаты , если все поля заполнены.
0
|
||||||
| 17.12.2014, 21:19 | |
|
Ответы с готовыми решениями:
8
Помогите посторить правильный SQL запрос для MySQL Правильный SQL запрос |
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||
| 18.12.2014, 10:46 | ||||||
|
Пробуй
0
|
||||||
|
2 / 2 / 0
Регистрация: 03.11.2014
Сообщений: 21
|
|
| 18.12.2014, 19:32 [ТС] | |
|
ДЖава в андроиде не знает такой оператор "iif" ((
/гугл тоже самое написал((/
0
|
|
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
||||||
| 18.12.2014, 20:06 | ||||||
|
Бывает, писал на коленке, фоксовские отголоски...
![]()
1
|
||||||
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
||||||
| 18.12.2014, 21:24 | ||||||
|
bakhman, Armagedo, здесь есть риск получить значения с кавычками и апострофами, поэтому я бы не рекомендовал использовать прямые значения. Советую ознакомиться с Правильно составить запрос, содержащий "'".
Кроме того, неясно, что будет, если пользователь не введёт значения совсем. Показывать 0 записей? Посему условие запроса я бы переписал примерно так.
Затем сделать проверку condition.isEmpty, и если false, то можно делать запрос.
1
|
||||||
|
2 / 2 / 0
Регистрация: 03.11.2014
Сообщений: 21
|
||
| 18.12.2014, 21:48 [ТС] | ||
|
Спасибо большое!! попробую сейчас
0
|
||
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
| 18.12.2014, 22:02 | |
|
CoolMind, согласен по поводу DatabaseUtils.sqlEscapeString.
В остальном - на вкус и цвет все фломастеры разные. Как хотИт аскер, так пусть и пишет. Главное - идея. Адьос
1
|
|
|
2 / 2 / 0
Регистрация: 03.11.2014
Сообщений: 21
|
|
| 18.12.2014, 22:36 [ТС] | |
|
спасибо парни! всё работает!!
запланирую попозже разобраться в этом сложном запросеДобавлено через 10 минут а поясните пожалуйста , что значит таинственное (1) ? - почему система разрешает иметь (1) во всех полях кроме указанного и выдает результаты? т.е. например: SELECT * FROM record WHERE (1) AND (1) AND (1) AND (1) AND (messtime='1990-2000') это значит что (1) - спец обозначение заполненнного поля, но любым значением?
0
|
|
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
| 18.12.2014, 23:13 | |
|
Ничего оно не таинственное.
В SQLite нет логических истины и ложь. Ну, оно как бы и есть там тип BOOLEAN, но на самом деле никакого true или false - нет, а есть соответствующие им целочисленные 1 и 0, которые и храянтся дальше в таблицах. Поэтому в принципе советуют не пользоваться BOOLEAN в SQLite, чтобы не нажить себе неприятностей на одно место, а пользовать integer - 1 или 0. Т.е. (1) здесь читай как TRUE. Ну, а дальше свойства конъюнкции, в которых простые ТRUE никак не влияют на результат общего условия - ведь грубо - каждый ТRUE это логическое умножение на 1. В этом собственно и фокус их такого использования. Ну, а вводятся они с тем, чтобы при любых раскладах значений получить корректное выражение для SQL запроса. Еще один вариант расписал CoolMind, у него не будет никаких (1) или (0). Что больше по нутру и понятнее, то и положи в голову
1
|
|
| 18.12.2014, 23:13 | |
|
Помогаю со студенческими работами здесь
9
Правильный sql запрос Правильный запрос SQL Правильный запрос SQL Правильный SQL запрос на поиск Для реализации записей использовать списки свойств атомов. Массив записей нужно считывать из файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|