Поисковый столбец в базе данных SQL, игнорирующей специальные символы

На всякий случай Вы используете.NET 2.0 и не имеете доступа к LINQ:

 static T First<T>(IEnumerable<T> items)
 {
     using(IEnumerator<T> iter = items.GetEnumerator())
     {
         iter.MoveNext();
         return iter.Current;
     }
 }

Это должно сделать то, что Вы ищете..., это использует дженерики так Вы для получения первого объекта на любом типе IEnumerable.

Вызов это как так:

List<string> items = new List<string>() { "A", "B", "C", "D", "E" };
string firstItem = First<string>(items);

Или

int[] items = new int[] { 1, 2, 3, 4, 5 };
int firstItem = First<int>(items);

Вы могли изменить его с готовностью достаточно для имитации.NET 3.5's IEnumerable. ElementAt () дополнительный метод:

static T ElementAt<T>(IEnumerable<T> items, int index)
{
    using(IEnumerator<T> iter = items.GetEnumerator())
    {
        for (int i = 0; i <= index; i++, iter.MoveNext()) ;
        return iter.Current;
    }
} 

Вызов его как так:

int[] items = { 1, 2, 3, 4, 5 };
int elemIdx = 3;
int item = ElementAt<int>(items, elemIdx);

, Конечно, если Вы делаете , имеют доступ к LINQ, затем уже существует много хороших ответов, отправленных...

8
задан jonhobbs 17 August 2009 в 17:01
поделиться

3 ответа

Я бы посмотрел на использование полнотекстового индекса, а затем вы могли бы использовать возможности FREETEXT и CONTAINS для выполнения поиска.

РЕДАКТИРОВАТЬ: Я бы все же посмотрел на уточнение полнотекстового индекса однако поиск, чтобы продолжить другой ответ, можно использовать с помощью REPLACE.

SELECT
    Artist,
    Title
FROM
    Songs
WHERE
    REPLACE(REPLACE(REPLACE(Artist, '#',''), '*', ''), '"', '') LIKE '%Keywords%'
10
ответ дан 5 December 2019 в 15:25
поделиться

Вам нужно будет удалить различных персонажей. Одиночные кавычки, двойные кавычки, дефисы, точки, запятые и т. Д.

Вы можете использовать регулярные выражения в предложении where и выполнять сопоставление с чистым значением. Подробнее о регулярных выражениях в SQL здесь .

Что касается искусства, в котором вы хотите вернуть 4-ю строку для SOUL ... вам понадобится структура данных для тегов песен, и вам придется искать в теги для совпадения. Боюсь, для этого нам понадобятся дополнительные сведения о вашей структуре данных.

1
ответ дан 5 December 2019 в 15:25
поделиться

Используйте комбинацию TRANSLATE, UPPER и TRIM .

0
ответ дан 5 December 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: