比如一张表:
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 条件
分享到:
相关推荐
这里我们主要探讨两种MySQL的实现方式:一种是使用用户定义的变量和`FIND_IN_SET`函数,另一种是利用存储过程和中间表。 ### 第一种方法:用户定义变量和`FIND_IN_SET`函数 此方法创建了一个名为`lvtao_demo_a`的...
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...
SELECT FIND_IN_SET('a','a,b,c'); -- 返回1 ``` ##### 4. `CONCAT`, `CONCAT_WS`, `GROUP_CONCAT`函数 - **`CONCAT`**: 连接两个或多个字符串值。 - **`CONCAT_WS`**: 使用指定分隔符连接字符串值。 - **`GROUP...
该函数使用 WHILE 循环来递归地查找所有子节点,并使用 `FIND_IN_SET` 函数来判断当前节点是否是子节点。 创建 `getChildLst` 函数的 SQL 语句如下: ```sql CREATE FUNCTION `getChildLst`(rootId INT) RETURNS ...
# 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 ...
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官网下载,如果比较慢, 从...
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 ...
然后在查询中使用`FIND_IN_SET`函数来检查特定部门是否属于这个列表。 以下是一个简化的示例,展示如何创建这样的自定义函数: ```sql DELIMITER $$ CREATE FUNCTION get_unit_child_list(root_id INT) RETURNS ...
总之,在MySQL中处理以逗号分隔的字段时,可以使用`substring_index()`、`GROUP_CONCAT()`和`FIND_IN_SET()`等函数进行数据的拆分、聚合和连接。这些技巧在处理多值字段时非常有用,能有效地对数据进行操作和分析。
在MySQL中,实现树状所有子节点的查询并非像Oracle那样可以直接使用Hierarchical ...而在有限层次的情况下,自连接查询则是一个简洁的解决方案。根据实际情况和性能需求,可以选择合适的方法来实现树形结构的查询。
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` 安装新版...
教义扩展 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。通过这些步骤,可以确保服务器环境能够支持Java Web应用程序的运行。每一步都提供了具体的操作指南,便于读者理解和操作。此外,还提供了...
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 是一款非常流行的开源关系型数据库管理系统,由瑞典的 MySQL AB 公司开发,后来成为 Oracle 的一部分。它支持 SQL(Structured Query Language,结构化查询语言)标准,能够高效地处理大量数据。MySQL 的主要...
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 ...