zoukankan      html  css  js  c++  java
  • 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;');

    数据为:

    sql

    select DISTINCT Q1.id,Q1.code,Q1.codeRepty from queryreptycode as Q1  INNER JOIN
    queryreptycode 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

  • 相关阅读:
    C#基础--经常用到的技术点
    VS2012 快捷键使用
    单例模式以及使用在winform界面开发上的实例
    Linq to sql 增、删、查、改、解决更新过程冲突的方法
    Lambda表达式
    Hello LINQ
    基础记录--.NET开发规范
    WCF通信模式(转)
    Excel导入导出数据库
    ENS 域名注册表智能合约(ENSRegistry.sol)解析
  • 原文地址:https://www.cnblogs.com/babyhhcsy/p/4334640.html
Copyright © 2011-2022 走看看