mariadb regexp有时在存储过程中返回空

gtlvzcf8  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(298)

需要帮助,我有几天的麻烦。
问题是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运行非常好,但不能直接在myserver windows10、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
p1iqtdky

p1iqtdky1#

我不知道,但是这项工作,我用这个来分配set v_temp2=v_temp1;

-- //////////        

    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;

    -- ///////////

相关问题