Поиск по SQLite

150
12 ноября 2019, 12:30

Как правильно сделать такую штуку, что бы когда делаю запрос по таблице, допустим, цифру 3, не выводило 13. Или 2 - что бы поиск не выдавал поля , где есть 22. Надеюсь понятно объяснил, спасибо. Сами числа записаны в поле помеченным типом TEXT, но в одной ячейке может быть, к примеру так 13, 16, 17, 20, 21, 22

Использую такой запрос

 SELECT * FROM bus_station WHERE  bus_key_query LIKE '%2%';

Запрос выводит 2, 20, 22, а нужно получить только конкретный ответ 2.

Answer 1

Перед использованием таких операторов как LIKE убедитесь что вы точно знаете как они работают. Если посмотреть в документацию (неожиданно) то можно найти такое:

The LIKE operator does a pattern matching comparison. The operand to the right of the LIKE operator contains the pattern and the left hand operand contains the string to match against the pattern. A percent symbol ("%") in the LIKE pattern matches any sequence of zero or more characters in the string. An underscore ("_") in the LIKE pattern matches any single character in the string. Any other character matches itself or its lower/upper case equivalent (i.e. case-insensitive matching).

Оператор LIKE использует в своей конструкции регулярные выражения, где поиск происходит по определеному паттерну. Вы же, в своем паттерне (%2%) говорите, что нужно найти число 2 с ЛЮБЫМ количеством символов до и также ЛЮБЫМ количеством после. Следуя из этого ваш паттерн должен просто выглядеть так:

SELECT * FROM bus_station WHERE  bus_key_query LIKE '2';
Answer 2

Всё просто, не используйте LIKE:

SELECT * FROM bus_station WHERE bus_key_query = 2;

Ну, и bus_key_query стоит сделать числовым полем.

READ ALSO
Как правильно закинуть в проект файл persistance.xml? [закрыт]

Как правильно закинуть в проект файл persistance.xml? [закрыт]

Имею проект maven quickstart, в нем нету ни папки meta-inf, ни propertiesКак добавить к нему файл persistance

139
как сделать прогресс-бар видимым из адаптера который расширяет FirestorePagingAdapter?

как сделать прогресс-бар видимым из адаптера который расширяет FirestorePagingAdapter?

Для показа списка исполуьзую recyclerview и адаптер который расширяет FirestorePagingAdapter, в котором есть метод onLoadingStateChangedХочу сделать ProgressBar видимым...

129
Клиент передает серверу две даты, а сервер возвращает количество лет между датами [закрыт]

Клиент передает серверу две даты, а сервер возвращает количество лет между датами [закрыт]

Как правильно передать дату, не возвращает количество лет

141
Вопрос по Java и Github

Вопрос по Java и Github

Я даже не знаю как правильно задать вопрос, сижу и перескакиваю с проблемы на проблему (точнее это не проблема, а мое незнание и отсутствие...

114