sql 一個字段是否包含另一個字段
阿新 • • 發佈:2018-04-12
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;'); start 說明開始搜索的字符位置。默認值是1,就是說,搜索將從字符串的第一個字符開始。如果,參數為負 則表示搜索的位置從右邊開始計算,而不是默認的從左邊開始
occurrence 指定試圖搜索的子串的第幾次出現,默認值是1,意 味著希望其首次出現
該函數反饋一索引順序值,在該位置發現了要搜索的子串。下面的例子指出了INSTR函數的使用情況:
INSTR(‘AAABAABA’,’B’)=4
INSTR(‘AAABAABA’,’B’,1,2)=7
數據為:
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 正在搜索的字符串
occurrence 指定試圖搜索的子串的第幾次出現,默認值是1,意 味著希望其首次出現
該函數反饋一索引順序值,在該位置發現了要搜索的子串。下面的例子指出了INSTR函數的使用情況:
INSTR(‘AAABAABA’,’B’)=4
INSTR(‘AAABAABA’,’B’,1,2)=7
sql 一個字段是否包含另一個字段