>

"Britney Spears"가 포함 된 문자열 목록을 검색하려고하는데 이것이 내가 사용하는 것입니다

from p in Objects
where p.Title.Contains("Britney Spears")
select p

잘 작동하지만 "Britney Jean Spears", "Britney 'Sexy'Spears"라는 제목을 선택하려면 작동하지 않으므로 질문은 사이에 와일드 카드 '%'를 삽입하는 방법입니다. LINQ2SQL 검색을 수행하는 동안 브리트니 스피어스? 감사합니다.

감사합니다. 앤디.


  • 답변 # 1

    SqlMethods.Like 를 사용할 수 있습니다  이 목적을위한 방법.

    from p in Objects
    where SqlMethods.Like(p.Title, "Britney% Spears")
    select p
    
    

  • 답변 # 2

    StartsWith() 만 사용하십시오  그리고 EndsWith()  패턴을 시뮬레이션합니다. AFAIK, LINQ-to-SQL은 와일드 카드를 지원하지 않습니다.

    from p in Objects
    where p.Title.StartsWith("Britney") && c.Title.EndsWith("Spears")
    select p;
    
    

    그렇지 않으면 더 복잡한 패턴이있는 경우 직접 쿼리를 실행할 수 있습니다.

    db.ExecuteQuery<MyObject>("SELECT * "
                            + "FROM Objects "
                            + "WHERE Title LIKE 'Britney%Spears'");
    
    

  • 답변 # 3

    똑바로 SQL을 사용 하듯이 정확하게 수행

    like 에 특수 문자를 제공 할 수 있습니다  ".", "%"및 "[]"와 같은 절

    충분하지 않으면 정규식을 사용할 수 있지만 정규식이 "클라이언트"측에서 실행되므로주의하십시오. 즉, 전체를 가져오고 메모리에서 결과 범위를 좁히려 고 시도합니다.

    를 수행하여 zerkms 방법을 다소 최적화 할 수 있습니다
    from p in Objects
    where p.Title.Contains("Britney") && p.Title.Contains("Spears") && regex.Match(p.Title).Success
    select p
    
    

    테스트하지는 않았지만 SQL 서버 측에서 처음 두 가지 조건을 실행 한 다음 정규식을 사용하여 범위를 좁혀 야합니다.

  • 이전 ios - Int32 어레이와 함께 신속한 사용 sizeof
  • 다음 javautilzipzipexception - 중복 항목 : android/support/v4/accessibilityservice/accessibilityserviceinfocompatjellybeanmr2class