2012-07-30 2 views
0

복잡한 쿼리를 작성하려고합니다. 나는 테이블을 가지고 있는데 그 테이블에 인공 필드 match_count을 추가하고 SELECT *,match_count FROM을 사용하고 싶습니다. 그건 문제가 아니야. 문제는 다음과 같습니다. 몇 가지 정규식이 있는데, 발견 된 각 정규식과 함께 match_count를 늘리고 싶습니다. 이 표현식은 표의 여러 필드 (예 : param1 REGEXP "reg1"param2 REGEXP "reg2")와 param1 REGEXP "reg3"에 적용됩니다. 표현식처럼 열을 다시 사용할 수 있지만 match_count 필드는 일치하는 수와 일치해야합니다.MySQL은 REGEXP와 일치하는 필드 수를 늘립니다.

가능하면 열이 정규 표현식과 여러 번 일치하면 일치 항목 수가 1 개가 아니라 일치하는 숫자로 증가합니다.

답변

2

당신은 정규 표현식 표현식의 결과를 요약 할 수 있습니다

SELECT *, 
    param1 REGEXP "reg1" + 
    param2 REGEXP "reg2" + 
    param1 REGEXP "reg3" AS match_count 
FROM 

가능하다면, 그것은 또한 멋진 것 열이 정규 표현식을 여러 번 일치하는 경우, 경우, 경기 수는 있었다 1에 의해 증가한 것이 아니라이 일치 수에 의해 증가했다.

MySQL에서는 가능하지 않다고 생각합니다. 그러나 많은 범용 언어로 가능합니다.

+0

감사합니다. 긍정적 인 일치가 1이라는 것을 알지 못했습니다. – arik

+0

이 구문은 각 summand 및 summing expression에 대해 괄호를 사용하지 않으면 작동하지 않습니다. – arik

관련 문제