SQllite поиск без учета регистра
Такая проблема, обращался уже с ней ранее, но теперь дополнение.
В общем, в БД таблица, в ней огромный список клиентов с разнообразными названиями как на кириллице, так и на латинице. Поиск сделал вот так:
void MainWindow::on_lineEdit_SearchOfClients_textEdited(const QString &arg1)
{
MainThemeOfClients();
QString srch = "%" + arg1 + "%"; //строка поиска
qDebug() << srch;
if (arg1.count(' ') == arg1.size()) { //если пусто - выводим весь список
UpdateClients();
} else{ //если нет - вытаскиваем из БД клиентов с именами LIKE srch
QSqlQuery query;
query.prepare("SELECT id, companyName FROM clients WHERE companyName LIKE :search");
query.bindValue(":search", srch);
query.exec();
query.first();
qDebug() << query.value(1);
clientsModel->setQuery(std::move(query));
ui->listView->setModelColumn(1);
}
}
Поиск работал, но была проблема с регистром. Компанию Company_1 не находило при вводе "com" в строку поиска. Обратился сюда, подсказали сделать так:
query.prepare("SELECT id, companyName FROM clients WHERE upper(companyName) LIKE :search");
query.bindValue(":search", srch.toUpper());
Сделал, обрадовался - заработало. Но потом дошло, что не работает с кириллицей. Включил детектива, посидел в SQlite консоли и понял, что значения upper(companyName) не возвращают всё в верхнем регистре. Вот и вопрос, как исправить эту всю ситуацию?