EDIT: Я нашел ответ. Используйте «GLOB». Какое странное слово, неудивительно, что я ничего не могу найти.Android SQLite с учетом регистра
Я пытаюсь использовать курсор в Android, чтобы сделать регистр в моей таблице SQLite чувствительным к регистру. У меня есть googled для этого, но все результаты людей спрашивают, как получить регистр без учета регистра и учебники о том, как сделать его нечувствительным к регистру. Это противоположность тому, что я хочу. Мне нужен регистр, чувствительный к регистру, но я все еще изучаю SQLite и не знаю, что добавить.
Это как мой курсор в настоящее время называется:
c = getContentResolver().query(element, null, PeriodicTable.SYMBOL + " LIKE? ", new String[]{guess}, "symbol");
элементы периодической таблицы чувствительны к регистру, поэтому, если вы вводите CO, вы получаете углерода и кислорода. Если вы входите в Co, вы получаете Cobalt. Я хочу использовать чувствительность к регистру для фильтрации ошибочных пользовательских записей.
В периодической таблице нет такой вещи, как «Углерод и кислород» (CO). Существует «Carbon» (C), и есть «Oxygen» (O). И есть «Кобальт» (Co). Поэтому, если вы введете 'CO' или' co' или 'cO' или' Co', вы всегда получите 'Cobalt'. Почему вы должны использовать 'LIKE' или' GLOB', когда вы можете использовать '='? –
@Frank N. Stein Спасибо за помощь, я не знал, что могу использовать = на месте, если НРАВИТСЯ. В чем разница? Я пишу алгоритм синтаксического анализа химических формул, поэтому мне нужно «угадать» текущий элемент как комбинацию текущего символа и следующего, что может привести к CO, Co, cO и co. – Dobob
'Like' использует« регулярные выражения »(ну, ** вид **). В то время как '=' является строгой эквивалентностью (поэтому она быстрее **, потому что она делает одно сравнение). –