代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MYSQL
】
判读两个字符串是否存在交集(类似1,2,3字符串)
作者:
新玄
/ 发布于
2018/5/12
/
916
DROP FUNCTION IF EXISTS `INTE_ARRAY`; delimiter // -- 集合交集检查函数 -- @param varchar(255) setA A 集合 如 "1,3,5,9" -- @param varchar(255) setB B 集合 如 "8,2,3,7" -- @return int(1) B 集合内单元在 A集合 内存在则返回 1 否则返回 0 CREATE FUNCTION `INTE_ARRAY` (setA varchar(255),setB varchar(255)) RETURNS int(1) BEGIN DECLARE idx INT DEFAULT 0 ; -- B 集合单元索引 DECLARE len INT DEFAULT 0;-- B 集合表达式长度 DECLARE llen INT DEFAULT 0;-- 最后检查位置 DECLARE clen INT DEFAULT 0;-- 当前检查位置 DECLARE tmpStr varchar(255);-- 临时检查数据集 DECLARE curt varchar(255);-- B 当前检查的单元 SET len = LENGTH(setB); WHILE idx < len DO SET idx = idx + 1; SET tmpStr = SUBSTRING_INDEX(setB,",",idx); SET clen = LENGTH(tmpStr); -- 获取当前 setB 中的单元 IF idx = 1 THEN SET curt = tmpStr; ELSE SET curt = SUBSTRING(setB,llen+2,clen-llen-1); END IF; -- 检查是否存在于 setA 中 IF FIND_IN_SET(curt,setA) > 0 THEN RETURN 1; END IF; -- 当前检查终点与上次检查终点相同则跳出 IF clen <= llen THEN RETURN 0; END IF; SET llen = clen; END WHILE; RETURN 0; END; // delimiter ; select INTE_ARRAY("1,3,5,9","8,2,3,7") as is_inte_array; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 解决数据格式存储存储大的问题 —Text CREATE FUNCTION `is_mixed` (setA TEXT,setB TEXT) RETURNS int(1) BEGIN DECLARE idx INT DEFAULT 0 ; -- B 集合单元索引 DECLARE len INT DEFAULT 0;-- B 集合表达式长度 DECLARE llen INT DEFAULT 0;-- 最后检查位置 DECLARE clen INT DEFAULT 0;-- 当前检查位置 DECLARE tmpStr TEXT;-- 临时检查数据集 DECLARE curt TEXT;-- B 当前检查的单元 SET len = LENGTH(setB); WHILE idx < len DO SET idx = idx + 1; SET tmpStr = SUBSTRING_INDEX(setB,",",idx); SET clen = LENGTH(tmpStr); -- 获取当前 setB 中的单元 IF idx = 1 THEN SET curt = tmpStr; ELSE SET curt = SUBSTRING(setB,llen+2,clen-llen-1); END IF; -- 检查是否存在于 setA 中 IF FIND_IN_SET(curt,setA) > 0 THEN RETURN 1; END IF; -- 当前检查终点与上次检查终点相同则跳出 IF clen <= llen THEN RETURN 0; END IF; SET llen = clen; END WHILE; RETURN 0; END;
试试其它关键字
同语言下
.
MySQL按日期分组统计(按天统计,按月统计)
.
mysql 获取某个库下面所有表的所有数据(
.
查看表当前自增值
.
查看碎片较多的表
.
查看数据表较大的表
.
查看非InnoDB引擎表
.
根据某一字段值按照某一特定符转化为列数据
.
按时间段分组查询当天小时内数据
.
mysql json 使用 类型 查询 函数
.
按天数据统计
可能有用的
.
MySQL按日期分组统计(按天统计,按月统计)
.
mysql 获取某个库下面所有表的所有数据(
.
查看表当前自增值
.
查看碎片较多的表
.
查看数据表较大的表
.
查看非InnoDB引擎表
.
根据某一字段值按照某一特定符转化为列数据
.
按时间段分组查询当天小时内数据
.
mysql json 使用 类型 查询 函数
.
按天数据统计
新玄
贡献的其它代码
(
13
)
.
判读两个字符串是否存在交集(类似1,2,3字符串)
.
JS实现简单的缓慢动画
.
修改字段允许为空
.
阳历转农历
.
统计文本中某个字符串出现的次数
.
实现简单的 Ping 的功能,用于测试网络是否已经联通
.
Jquery-使元素居屏幕中间位置
.
jQuery小技巧-隐藏搜索文本框文字
.
调用系统里默认的邮件客户端
.
所在城市的简单注册
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3