zoukankan      html  css  js  c++  java
  • mysql中要根据某个逗号分割的字符串关联查询另一张表的数据

    首先观察下面的查询

    select * from company where f_id in ('210','205','208')

    select * from company where f_id in ('210,205,208')

    现在我要根据另一张模板表中的一个字段查询他下面的公司,存的是字符串类型

    这时

    select * from company where f_id in (select company_id from templet where f_id=583)

    只查询出一条数据,说明他查询的结果是一个字符串'210,205,208',而我们需要的是'210','205','208',

    这时会想到分割,但是发现需要循环很麻烦。这里提供正则表达式的方式解决如下

    先把字符串替换成正则需要的样式,把‘210,205,208’转成210|205|208,再用正则匹配

    SELECT
        *
    FROM
        company
    WHERE
    f_id REGEXP (
    SELECT
       REPLACE (
      (
       SELECT
           company_id
    FROM
        templet
       WHERE
           f_id = 583
       ),
         ',',
       '|'
    )
    )

  • 相关阅读:
    MySQL主主同步方案
    Mysql增量备份与恢复
    配置合适的存储引擎
    基于Amoeba读写分离
    部署myaql主从异步复制
    MySQL完全备份操作
    echo 命令详解
    ELK 基本部署
    zabbix 简介
    基于 Git Tag 发布及回滚代码
  • 原文地址:https://www.cnblogs.com/edison20161121/p/7839950.html
Copyright © 2011-2022 走看看