쿼리를 사용하여 텍스트가 포함 된 열에서 사용자 ID를 가져 왔습니다. 이것은 제가 사용하고 있으며 전체 메시지가 들어있는 텍스트 필드에서 User id 부분을 가져오고 싶은 포럼 시스템을위한 것입니다. 내가 사용하고 쿼리 지금 추한 SQL 그게 사실을 무시하고 있지 최종 난 그냥은 사용자 ID를 읽고 요점을 얻을 필요가Mariadb : Regexp_substr이 일치하지 않는 그룹 정규 표현식과 함께 작동하지 않습니다.
SELECT REGEXP_SUBSTR(message, '(?:member:)(\d+)' ) AS user_id from posts where message like '%quote%';
입니다. 다음은 메시지 열
`QUOTE="Moony, post: 967760, member: 22665"]I'm underwhelmed...[/QUOTE]
Hopefully we aren’t done yet and this is nothing but a depth signing!`
mariadb의 REGEXP_SUBST에 사용되는 정규 표현식에 대해 다른 무언가가 거기에 볼 것이다 텍스트의 예입니다? 이것은 PCRE 여야하며 정규 표현식 테스터 내에서 작동하며 올바르게 읽어야합니다. 그것은 그룹 "회원"을 찾고 그 다음에 숫자를 가져 와서 모든 게시물에 대해 단일 일치를 가져야합니다.
내가 왜 그룹화하고 다음 있지 않다 게시물에 여러 따옴표가있는 경우 작동하지 않습니다 그러나 다음
"]
에 대한 내다을 사용하여 작동하는 추한 해킹/해결 방법입니다 문자열'member :', 비 캡쳐 링이있을 수 있습니다. –'(? <= member :) \ d +' ' –
@ WiktorStribiżew'(? <= member :) \ d +'는 동일한 결과를 제공합니다. 귀하의 정규식과 광산 둘 다 내가 https://regex101.com/에서 테스트를하면 작동하지만 한번은 SQL 쿼리 내에 있지 않습니다. – Dannymh