码迷,mamicode.com
首页 > 数据库 > 详细

sql 一个字段是否包含另一个字段

时间:2018-04-12 18:01:25      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:sql 一个字段是否包含另一个字段

/* Navicat MySQL Data Transfer Source Server         : test Source Server Version : 50528 Source Host           : localhost:3306 Source Database       : test Target Server Type    : MYSQL Target Server Version : 50528 File Encoding         : 65001 Date: 2015-03-13 11:25:34 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for queryreptycode -- ---------------------------- DROP TABLE IF EXISTS `queryreptycode`; CREATE TABLE `queryreptycode` (   `id` int(11) NOT NULL,   `code` varchar(50) DEFAULT NULL,   `codeRepty` varchar(50) DEFAULT NULL,   PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of queryreptycode -- ---------------------------- INSERT INTO `queryreptycode` VALUES ('1', '1', '1'); INSERT INTO `queryreptycode` VALUES ('2', '2', '2;3;4;1;'); INSERT INTO `queryreptycode` VALUES ('3', '3', '1;');

数据为:

技术分享图片

select DISTINCT Q1.id,Q1.code,Q1.codeRepty from queryreptycode as Q1  INNER JOINqueryreptycode as Q2 
where INSTR(Q1.`code`,'%'+Q2.codeRepty+'%')

技术分享图片

原理:

函数INSTR会告诉用户,其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。
其具体的语法格式如下:
INSTR(string,substring[,start[,occurrence]])
其中:
string 待查询的字符串
substring 正在搜索的字符串
start 说明开始搜索的字符位置。默认值是1,就是说,搜索将从字符串的第一个字符开始。如果,参数为负 则表示搜索的位置从右边开始计算,而不是默认的从左边开始
occurrence 指定试图搜索的子串的第几次出现,默认值是1,意 味着希望其首次出现
该函数反馈一索引顺序值,在该位置发现了要搜索的子串。下面的例子指出了INSTR函数的使用情况:
INSTR(‘AAABAABA’,’B’)=4
INSTR(‘AAABAABA’,’B’,1,2)=7

sql 一个字段是否包含另一个字段

标签:sql 一个字段是否包含另一个字段

原文地址:http://blog.51cto.com/zhibeiwang/2097527

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!