2012-06-13 6 views
1

MySql 데이터베이스의 필드를 null 또는 정의 된 문자열이어야하는 정규 표현식과 어떻게 일치시킬 수 있습니까? 자바 스크립트에서 표현은 다음과 같을 것이다 (그리고 JS에서 작동)이 같은 /(.{0}|^ADO$)/NULL 값을 가진 MySql Regex

+0

JavaScript에서는이 작업을 직접 수행 할 수 없습니다. JavaScript는 일치하는 객체를 string으로 변환하므로 일부 var가 null 인 경우 'null'문자열과 일치합니다. 정규식은'null' 문자열을 포함하는 null var와 var 사이의 차이점을 알 수 없습니다. '/ (. {0} |^ADO $) /'는'. {0}'이 항상 일치하는 빈 표현식 *과 같기 때문에 어떤 문자열과도 매치합니다. 여러분의 표현식은'/ (^ ADO $) /'와 거의 같으며'/ (^ ADO $)? /'와 거의 같습니다. – Qtax

답변

4

NULLs (나는 항상 코드를 더 까다로워지는 것이 아니라 이해하기 쉽게 만든다.). 아마도 다음과 같은 것일 수 있습니다 :

SELECT * from table where IFNULL(field, '') REGEXP 'whatever'; 
1

사용 IS NULL :

당신이 명시 적으로 당신이 처리하는 방법을 표시 할 수 있도록이 IFNULL를 사용하여 선명한 수 있습니다
SELECT * FROM table WHERE (field IS NULL OR field = 'ADO') 
+0

일반 쿼리로 올바른 방법이 될 수 있습니다. 그렇지만 문제는 정규식 내에서이 작업을 수행하는 것입니다. – andred

관련 문제