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

Mysql mariadb Regexp有时在存储过程中返回空,mysql,sql,regex,stored-procedures,mariadb,Mysql,Sql,Regex,Stored Procedures,Mariadb,需要帮助,我有几天的麻烦 问题是在存储过程上运行子查询的regexp,有时返回空,有时返回正确 REGEXP ( select group_concat(_data_grupkasbank_auth.datahirarki separator '|') from _data_grupkasbank_auth where _data_grupkasbank_auth.uid='1' ) 如果我用字符串值替换子查询,它总是正确的: R

需要帮助,我有几天的麻烦

问题是在存储过程上运行子查询的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运行非常好,但在direct myserver windows 10、mariadb 10.3.23上无法运行

捕获:

评论

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

我不知道,但是这项工作,我用它来分配集合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;
    
    -- ///////////
    

我不知道,但是这项工作,我用它来分配集合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;
    
    -- ///////////
    

你不能简单地做一个GROUP_CONCAT而不是游标循环吗?重点不是游标循环而是regexp结果,我尝试删除游标并使用GROUP_CONCAT建议的结果,但仍然是相同的,有时为空,有时为正确,这里的查询:选择GROUP_CONCAT_data_grupkasbank_view.kode_grupkasbank separator',“从"数据"grupkasbank"视图中的"数据"grupkasbank"视图中的"hirrki"grupkasbank REGEXP选择组"concat"数据"grupkasbank"auth.datahirraki分隔符|从"数据"grupkasbank"auth视图中的"auth其中的"数据;试一下在集合中查找。这里也一样。任何消息,@Irwanto??我使用2个临时变量,这个工作,声明v_temp1文本;声明v_temp2文本;从表中将组_concatyourfield分隔符“|”选择为v_temp1;设置v_temp2=v_temp1;从表中选择field1、field2,其中field1 regexp v_temp2;你不能简单地做一个GROUP_CONCAT而不是游标循环吗?重点不是游标循环而是regexp结果,我尝试删除游标并使用GROUP_CONCAT建议的结果,但仍然是相同的,有时为空,有时为正确,这里的查询:选择GROUP_CONCAT_data_grupkasbank_view.kode_grupkasbank separator',“从"数据"grupkasbank"视图中的"数据"grupkasbank"视图中的"hirrki"grupkasbank REGEXP选择组"concat"数据"grupkasbank"auth.datahirraki分隔符|从"数据"grupkasbank"auth视图中的"auth其中的"数据;试一下在集合中查找。这里也一样。任何消息,@Irwanto??我使用2个临时变量,这个工作,声明v_temp1文本;声明v_temp2文本;从表中将组_concatyourfield分隔符“|”选择为v_temp1;设置v_temp2=v_temp1;从表中选择field1、field2,其中field1 regexp v_temp2;