복붙노트

[SQL] MSSQL 정규 표현식

SQL

MSSQL 정규 표현식

나는 다음과 같은 정규식이 : ^ [- A-ZA-Z0-9 /.]+$

이 기능은 현재 텍스트 상자에 입력 한 값이 검사와 일치하는지 여부. 그렇지 않은 경우 오류가 발생합니다.

난 아무것도 이미이 일치 나던 데이터베이스에 갔다 여부를 확인해야합니다.

나는 피곤 있습니다 :

 SELECT * FROM *table* WHERE ([url] NOT LIKE '^[-A-Za-z0-9/.]+$') 
 SELECT * FROM *table* WHERE PATINDEX ('^[-A-Za-z0-9/.]+$', [url])

최신 정보

그래서 실현 한 연구의 조금 후에 나는 정규 표현식을 사용할 수 있다고 생각하지 않습니다.

나는 이런 식으로 뭔가를 할 수 있다고 생각? 그 나에게 예상되는 결과를 제공하지만 다른 달리 아무것도 실행하지. 그것으로 사람의 자리 아무것도 잘못된 수 있습니까?

SELECT *, 
  CASE WHEN [url] LIKE '^[-A-Za-z0-9/.]+$' 
    THEN 'Match' 
    ELSE 'No Match' 
  END Validates
FROM 
  *table*

해결법

  1. ==============================

    1.당신의 도움에 대해 감사합니다.

    당신의 도움에 대해 감사합니다.

    이것은 내가 결국 사용한 것입니다 :

    SELECT *, 
      CASE WHEN [url] NOT LIKE '%[^-A-Za-z0-9/.+$]%' 
        THEN 'Valid' 
        ELSE 'No valid' 
      END [Validate]
    FROM 
      *table*
      ORDER BY [Validate]
    
  2. ==============================

    2.MySQL의에서 정규식 구문은 다음과 같습니다

    MySQL의에서 정규식 구문은 다음과 같습니다

    SELECT * FROM YourTable WHERE (`url` NOT REGEXP '^[-A-Za-z0-9/.]+$') 
    

    대신 LIKE의 REGEXP 절을 사용합니다. 후자는 패턴 매칭을 사용 % _ 와일드 카드에 대한 것이다.

    당신이 오타, 당신은 SQL 서버 (안 MySQL을)를 사용하고 있기 때문에, 당신은 정규식 기능을 노출 할 수있는 사용자 정의 CLR 기능을 만들어야합니다.

    자세한 내용은이 문서를 살펴 보자.

  3. ==============================

    3.사용 정규 표현식하지 LIKE :

    사용 정규 표현식하지 LIKE :

    SELECT * FROM `table` WHERE ([url] NOT REGEXP '^[-A-Za-z0-9/.]+$')
    
  4. from https://stackoverflow.com/questions/29206404/mssql-regular-expression by cc-by-sa and MIT license