Как искать несколько значений в нескольких столбцах, где некоторые значения пусты - PullRequest
0 голосов
/ 22 июня 2019

У меня есть 4 значения, которые пользователь может ввести, это ключевые слова, которые должны быть (или часть) в значении столбца, и 2 значения, которые пользователь может ввести, которые не должны существовать в том же столбце.Если результат верный, следует обновить поле в другом столбце.

Проблема заключается в том, что я верю в 2 области.

  1. Как обрабатывать пустые данные (поиск и / илипропустите) поля.

  2. Как объединить значения, которые должен содержать столбец, со значениями, которые столбец не должен содержать.

Я перепробовал всевиды комбинаций LIKE NOT LIKE, но ничто не дало ожидаемого результата.Единственное, что сработало, было заполнить поля empy данными из заполненного поля.что не похоже на чистое решение.Затем, когда я добавил NOT LIKE, он больше не работал.Наказал за грязное решение.:) Надеясь на поддержку правильного решения, спасибо!

    public bool UpdateFavProgramswithStationTableProgrammes(int favid, string station, string searchword1, string searchword2, string searchword3, string searchword4, string omitword1, string omitword2)
    {
        //Stringbuilder
        try
        {
            using (var connection = new SQLiteConnection(System.IO.Path.Combine(folder, "WhatsUpDB.db")))
            {
                connection.Execute("UPDATE Programmes SET FoundFav=? WHERE (Title LIKE ? AND Title LIKE ? AND Title LIKE ? AND Title LIKE ?) AND (IFNULL(title, '') NOT LIKE ? AND IFNULL(title, '') NOT LIKE ?) AND Station=? AND Stoptime>=?", favid, searchword1, searchword2, searchword3, searchword4, omitword1, omitword2, station, DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm"));
                return true;
            }
        }
        catch (SQLiteException ex)
        {
            Log.Info("SQLiteEx", ex.Message);
            return false;
        }

Как пример:

Пользователь вводит (searchword1) "Appels" и (Omitword1) "Rotten".Это должно привести к значению столбца «Яблоки хорошо выглядят» в качестве найденной записи и, таким образом, обновить флаг избранного (найденный или любимый флаг).

...