sql语句like多个条件的写法实例

表A 
no name
1   lu,li,zhang 
2   zhou,wei,liu 
3   li,fang 
表B 
no name  sex
1   li          1
2   lu         0
3   zhou    0
4   zhang  1

怎么实现


代码如下:

select * from A where A.name like (select B.name from B where B.sex=1)

----------------------------------------------------------------------------------------------------------------------------
sqlserver写法


代码如下:

select distinct a.no,a.name from a,b where charindex(b.name,a.name)>0 and b.sex=1

oracle写法


代码如下:

select distinct a.no,a.name from a,b where instr(a.name,b.name)>0 and b.sex=1

----- instr() 定位子串 instr('Hello World', 'or')   返回8

(0)

相关推荐

  • C#适用于like语句的SQL格式化函数

    本文实例讲述了C#适用于like语句的SQL格式化函数,分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: /// <summary> /// 对字符串进行sql格式化,并且符合like查询的格式. /// </summary> /// <param name="str">要转换的字符串</param> /// <returns>格式化后的字符串</returns> public static str

  • SQL中代替Like语句的另一种写法

    比如查找用户名包含有"c"的所有用户, 可以用 use mydatabase select * from table1 where username like'%c%" 下面是完成上面功能的另一种写法: use mydatabase select * from table1 where charindex('c',username)>0 这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字 符串及其它

  • SQL查询语句通配符与ACCESS模糊查询like的解决方法

    ACCESS的通配符和SQL SERVER的通配符比较===================================================ACCESS库的通配符为:*   与任何个数的字符匹配?   与任何单个字母的字符匹配 SQL Server中的通配符为:% 与任何个数的字符匹配_ 与单个字符匹配正文我今天在写个页面的时候,也很郁闷,表中明明有记录,但在ASP里就是搜索不到,理论的sql语句如下:Select * FROM t_food Where t_food.name

  • 利用reverse索引优化like语句的方法详解

    前言 在有一些情况下,开发同学经常使用like去实现一些业务需求,当使用like时,我们都知道使用like 前%(like '%111')这种情况是无法使用索引的,那么如何优化此类的SQL呢,下面是一个案例. 原SQL如下: pcc_cust_infonew 表索引如下 执行设计如下: 这里可以看到SQL执行3.96秒,执行计划中也可以发现PCC_CUST_INFONEW表走TABLE ACCESS FULL扫描,返回约380k的数据,然后再与PCC_CUST_CONTRACTCOMPANY表主

  • sql语句中like的用法详细解析

    在SQL结构化查询语言中,LIKE语句有着至关重要的作用.LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的. 假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据.现在我们要在姓名字段中查询以"张"字开头的记录,语句如下:select * from table1 where name like &quo

  • sql语句like多个条件的写法实例

    表A  no name 1   lu,li,zhang  2   zhou,wei,liu  3   li,fang  表B  no name  sex 1   li          1 2   lu         0 3   zhou    0 4   zhang  1 怎么实现 复制代码 代码如下: select * from A where A.name like (select B.name from B where B.sex=1) ------------------------

  • sql语句创建外键关联的完整实例

    以创建学生教师表为例: 学生 id 关联教师 tid 学生表: student 教师表: teacher sql语句 : USE school; CREATE TABLE student( id INT(10) NOT NULL PRIMARY KEY, NAME VARCHAR(30) DEFAULT NULL, tid INT(10) DEFAULT NULL, KEY `fktid` (`tid`), CONSTRAINT `fktid` FOREIGN KEY(`tid`) REFERE

  • sql语句中日期相减的操作实例代码

    目录 1. 直接用日期时间做减法 2. 使用 datediff 函数 补充:下面来看个实例 总结 1. 直接用日期时间做减法 GETDATE() 和 NOW() 查出来的时间一样,都带时分秒 select GETDATE(),NOW() FROM t_表名; curdate() 只显示 年月日 select curdate(),NOW() FROM TB_表名; 如果直接做减法,只能得到两个时间相差多少天 select (NOW()-日期时间字段) FROM T_表名; 若不要 时分秒,可以考虑

  • SQL语句过滤条件放在on与where子句中的区别和联系浅析

    目录 摘要: 综述 过滤条件放在on和where中的区别 小结 Reference 摘要: 介绍在多表关联SQL语句中,过滤条件放在on和where子句中的区别——inner join中没区别,外连接就不一样. 综述 蚂蚁金服的一道SQL面试题如下:SQL语句中,过滤条件放在on和where子句中的区别.当时满脑子是left join和inner join等,觉得没区别啊!细思极恐,故梳理一下. 过滤条件放在on和where中的区别 数据库在通过连接两张或多张表来查询记录时,都会先通过join

  • Mybatis注解方式完成输入参数为list的SQL语句拼接方式

    目录 Mybatis注解完成输入参数为list的SQL语句拼接 拼接查询条件为list集合的sql函数 Mybatis注解完成输入参数为list的SQL语句拼接 首先将list集合拼接成一个"1,2,3,4"格式的字符串 然后将这个字符串封装到一个类中:TyreInfoIdStr 这里的@SelectProvider是调用一个外部的类的方法的返回值作为sql语句. 在这个方法中拼接SQL语句与list集合的字符串,我这里是提前拼接过了. 拼接查询条件为list集合的sql函数 当dep

  • mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法

    需求:把一个表某个字段内容复制到另一张表的某个字段. 实现sql语句1: 复制代码 代码如下: UPDATE file_manager_folder f1LEFT OUTER JOIN file_manager_folder f2     ON f1.name = f2.name AND f2.parentId = 54SET f1.parentId = 54 WHERE f2.name IS NULL AND f1.id IN (1,2,3); 实现sql语句2: 复制代码 代码如下: upd

  • MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    本文实例讲述了MySQL常用的建表.添加字段.修改字段.添加索引SQL语句写法.分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, # 主键 uid INT(11) NOT NULL DEFAULT 0, # 创建者id context VARCHAR(600) NOT NULL DEFAULT '', # 公告

  • Python使用sql语句对mysql数据库多条件模糊查询的思路详解

    def find_worldByName(c_name,continent): print(c_name) print(continent) sql = " SELECT * FROM world WHERE 1=1 " if(c_name!=None): sql=sql+"AND ( c_name LIKE '%"+c_name+"%' )" if(continent!=None): sql=sql+" AND ( continent

  • mybatis对于list更新sql语句的写法说明

    目录 对于list更新sql语句的写法 批量更新 mybatis动态更新sql语句 注意参数是实体 对于list更新sql语句的写法 批量更新 <update id="updateConfigureNames" parameterType="java.util.List">     <foreach collection="list" item="item" index="index" o

  • 三表左连接查询的sql语句写法

    今天要查询所有realname的username,psw,gname,tel 表结构: 表t1 字段名:t1_id,username,psw 表t2 字段名:t2_id,gname,t1_id //这里一个t1_id对应多个t2_id t3 字段名:t3_id,realname,tel,t1_id //这里一个t1_id对应一个t3_id 遇到的麻烦是当一个realname在t2表中没有内容时,也要将此realname的username,psw,tel等显示出来,直接使用 sql="select

随机推荐