`
i3587616
  • 浏览: 21460 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

mysql find_in_set在oracle下的解决方案

阅读更多
比如一张表:
    artile (id,type,content);
    type:1表示文艺类,2表示小说类,3表示传记,4表示传说,等等5,6,7,8

    表数据:
    id       type           content
     1        3,1           dfasdfasdf
     2        1,3,6,8       dfasdf
     3        6,8,9         add
     现在要找出3传记类的artile记录

     mysql: select * from artile where find_in_set('3',type);
    
     oralce 语句实现:
     select * from artile da where instr(','||type||',',',3,')<>0;
     (原理:将1,3,6,8转为 ,1,3,6,8,然后找出 ,3,的位置
            将3,1转为 ,3,1,然后找出 ,3,的位置
            则<>0的即为存在,返回记录)

    用自定义一个find_in_set的oracle function 来解决
    create or replace function find_in_set(arg1 in varchar2,arg2 in varchar)
    return number is Result number;
    begin
    select instr(','||arg2||','  , ','||arg1||',') into Result from dual;
    return(Result);
    end find_in_set;
    则:select * from artile where find_in_set('3',type)<>0;

    mysql可接受0或其它number做为where 条件,oracle只接受表达式做为where 条件
0
0
分享到:
评论

相关推荐

    MySQL实现类似于connect_by_isleaf的功能MySQL方法或存储过程

    这里我们主要探讨两种MySQL的实现方式:一种是使用用户定义的变量和`FIND_IN_SET`函数,另一种是利用存储过程和中间表。 ### 第一种方法:用户定义变量和`FIND_IN_SET`函数 此方法创建了一个名为`lvtao_demo_a`的...

    A Guide for Migrating From Oracle to MySQL

    In particular, many MySQL customers are migrating from Oracle because they have reached the conclusion that the combination of cost-savings and feature set of MySQL make for a compelling business case...

    MySQL多种递归查询方法.docx

    SELECT FIND_IN_SET('a','a,b,c'); -- 返回1 ``` ##### 4. `CONCAT`, `CONCAT_WS`, `GROUP_CONCAT`函数 - **`CONCAT`**: 连接两个或多个字符串值。 - **`CONCAT_WS`**: 使用指定分隔符连接字符串值。 - **`GROUP...

    MySQL递归查询

    该函数使用 WHILE 循环来递归地查找所有子节点,并使用 `FIND_IN_SET` 函数来判断当前节点是否是子节点。 创建 `getChildLst` 函数的 SQL 语句如下: ```sql CREATE FUNCTION `getChildLst`(rootId INT) RETURNS ...

    mysql-5.5.43.tar.gz

    # set that will be compiled in; it's merely provided as a hint to # custom packaging steps. OPTION(COMMUNITY_BUILD "Set to true if this is a community build" ON) # Use a default manufacturer if no ...

    mysql-8.0.20-macos10.15-x86_64.tar.gz

    Mac OS X 10.15 下源码安装 mysql-8.0.20-macos10.15-x86_64 https://my.oschina.net/kinglyphp/blog/4281112 博客地址 下载mysql-8.0.20-macos10.15-x86_64.tar.gz 可以从mysql官网下载,如果比较慢, 从...

    MySQL and JSON A Practical Programming Guide 2018

    Written by a MySQL Community Manager for Oracle, MySQL and JSON: A Practical Programming Guide shows how to quickly get started using JSON with MySQL and clearly explains the latest tools and ...

    Mysql树形递归查询的实现方法

    然后在查询中使用`FIND_IN_SET`函数来检查特定部门是否属于这个列表。 以下是一个简化的示例,展示如何创建这样的自定义函数: ```sql DELIMITER $$ CREATE FUNCTION get_unit_child_list(root_id INT) RETURNS ...

    MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    总之,在MySQL中处理以逗号分隔的字段时,可以使用`substring_index()`、`GROUP_CONCAT()`和`FIND_IN_SET()`等函数进行数据的拆分、聚合和连接。这些技巧在处理多值字段时非常有用,能有效地对数据进行操作和分析。

    MySQL实现树状所有子节点查询的方法

    在MySQL中,实现树状所有子节点的查询并非像Oracle那样可以直接使用Hierarchical ...而在有限层次的情况下,自连接查询则是一个简洁的解决方案。根据实际情况和性能需求,可以选择合适的方法来实现树形结构的查询。

    Linux系统安装oracle数据库保姆教程

    4. 查看 MySQL 相关目录:`find / -name mysql` 5. 删除所有 MySQL 相关目录:`rm -rf 目录` 6. 删除 `/etc/my.cnf`:`rm -rf /etc/my.cnf` 7. 删除 `/var/log/mysqld.log`:`rm -rf /var/log/mysqld.log` 安装新版...

    DoctrineExtensions:一组Doctrine 2扩展

    教义扩展 Doctrine 2的一组扩展,增加了对MySQL,Oracle,PostgreSQL和SQLite中可用...FORMAT, DATEADD, DATEDIFF, DATESUB, DAY, DAYNAME, DAYOFWEEK, DAYOFYEAR, DEGREES, DIV, EXP, EXTRACT, FIELD, FIND_IN_SET

    一个字符串分隔多个参数存储过程调试

    这就需要用到字符串处理函数,如SQL Server中的`STRING_SPLIT`,MySQL中的`SUBSTRING_INDEX`或`FIND_IN_SET`,或者Oracle中的`INSTR`和`SUBSTR`等。 在存储过程的调试方面,不同数据库系统提供了不同的工具和方法。...

    CentOS7服务器环境配置教程(Mysql5.6+jdk1.7+Tomcat7)

    本文档详细介绍了如何在CentOS7环境下安装配置MySQL5.6、JDK1.7和Tomcat7。通过这些步骤,可以确保服务器环境能够支持Java Web应用程序的运行。每一步都提供了具体的操作指南,便于读者理解和操作。此外,还提供了...

    php.ini-development

    in production environments and one that is recommended to be used in ; development environments. ; php.ini-production contains settings which hold security, performance and ; best practices at its ...

    MySQL数据库开发教程-基础概念、SQL语法和Node.js操作详解

    MySQL 是一款非常流行的开源关系型数据库管理系统,由瑞典的 MySQL AB 公司开发,后来成为 Oracle 的一部分。它支持 SQL(Structured Query Language,结构化查询语言)标准,能够高效地处理大量数据。MySQL 的主要...

    unidac_7_1_4_pro DELPHI 10 Tokyo

    Bug with the FindFirst, FindLast, FindNext, FindPrior methods in Lazarus is fixed Bug with accessing a product help from the IDE menu is fixed Bug with recreating fields when calling Open after ...

Global site tag (gtag.js) - Google Analytics