programing

mariadb Regexp 저장 프로시저에서 때때로 빈 상태로 반환됩니다.

newsource 2023. 8. 13. 09:44

mariadb Regexp 저장 프로시저에서 때때로 빈 상태로 반환됩니다.

도움이 필요해요, 며칠 동안 문제가 생겼어요.

저장 프로시저에서 실행된 하위 쿼리에서 regexp가 문제입니다. 가끔은 빈칸으로 반환됩니다.

    REGEXP
        (
            select group_concat(_data_grupkasbank_auth.datahirarki separator '|') from _data_grupkasbank_auth where _data_grupkasbank_auth.uid='1'
        )

서브쿼리를 문자열 값으로 바꾸면 항상 정확합니다.

REGEXP
    (
        '/Sangatta/K3PC/|/Yayasan Balikpapan/Masjid/'
    )

여기서 내 dbfiddle은 완벽하게 작동하지만, 직접 내 서버 윈도우 10, mariadb 10.3.23에서는 작동하지 않습니다.

https://www.db-fiddle.com/f/pRWvdP3KUwv7rbTN7H7PZC/0

캡처 : 결과 테스트

서브쿼리

직접 끈

(댓글에서)

select  group_concat(_data_grupkasbank_view.kode_grupkasbank separator ',' )
    from  _data_grupkasbank_view
    where  _data_grupkasbank_view.hirarki_grupkasbank REGEXP 
      ( SELECT  group_concat(_data_grupkasbank_auth.datahirarki separator '|')
            from  _data_grupkasbank_auth
            where  _data_grupkasbank_auth.uid='1' 
      )
    INTO  v_tempsql

저는 모르겠지만, 이 일은, 저는 이것을 SET v_v_v_v1을 할당하는 데 사용합니다;

    -- //////////        
    
    DECLARE v_temp1 TEXT;
    DECLARE v_temp2 TEXT;
    
    select
    group_concat(yourfield separator '|')
    INTO
    v_temp1
    from
    table;
    
    SET v_temp2 = v_temp1;
    
    select 
    field1, field2
    from table
    where
    field1 regexp v_temp2;
    
    -- ///////////
    

언급URL : https://stackoverflow.com/questions/62715945/mariadb-regexp-sometime-return-empty-in-stored-procedure