A表有一个字段是数组,B表也有一个字段是数组,如何关联AB表,条件如下?

第一步按照名字连接,
第二部筛选出 “AB表需要共有一种水果”的记录

A表

B表

阅读 2.1k
1 个回答

如果硬要做的话,MySQL8.0提供了regexp_replace,MariaDB也有,那么就可以这么写:

SELECT 
    users.name as users_name,
    users.fruit as users_fruit,
    users1.name as users1_name,
    users1.fruit as users1_fruit,
    -- 为了避免嵌套太多,最后的标点符号就不处理了
    regexp_replace(
        users.fruit,
        regexp_replace(
            regexp_replace(users.fruit, '[,,、]+', '|'),
            regexp_replace(users1.fruit, '[,,、]+', '|'), 
            ''
        ),
        ''
    ) as result
FROM users
LEFT JOIN users1 ON users.name = users1.name
;

当然,低版本的MySQL没有这个函数得自己写,这里有人提供了例子regexp_replace,我找下来就这个可以解决中文的匹配。

希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题