精华内容
下载资源
问答
  • = 'ab'|| 解决 where 条件为 A != 'a' and B != 'b'的查询条件在工作项目中,遇到过一个需求=>查询历史交易列表,历史数据库表如图所示,包含这几个字段:银行卡号,交易时间,交易类型,交易状态,抹账标识。...

    1. select * from XX where A || B != 'ab'

    || 解决 where 条件为 A != 'a' and B != 'b'的查询条件

    在工作项目中,遇到过一个需求=>查询历史交易列表,历史数据库表如图所示,包含这几个字段:银行卡号,交易时间,交易类型,交易状态,抹账标识。查询条件是:card_Id & trade_time & trade_type & (trade_status != 1' & ind_flag != 'ts01'),即在查询的结果集中过滤掉trade_status = '1' 并且 ind_flag = 'ts01'的数据。

    字段ind_flag 的取值为: 0和1

    字段trade_status 的取值有四个:TS00,TS01,TS02,TS03

    6b6ca9409307

    image.png

    我首先想到的是取差集

    1. 先查询满足(card_Id & trade_time & trade_type)这三个条件的结果集A,

    2. 再查询满足(trade_status = 1' & ind_flag = 'ts01')的结果集B,

    3. 然后再用A MINUS B,即 A-B 取差集。

    这里涉及到三张表:历史表,今天的表,昨天的表(数据没有过库时)

    select *

    from(

    card_Id & trade_time & trade_type

    )

    minus

    select *

    from (

    trade_status = 1' & ind_flag = 'ts01'

    )

    这样写的sql代码满足了查询需求,但是写出的sql代码很长,不符合代码规范。于是求助组内的数据库大佬,大佬一看,给了个 '||' 就砍掉了一半的代码。

    select *

    from(

    card_Id & trade_time & trade_type

    )

    where trade_status || trade_status != '1ts01'

    2. || 链接运算符,常用场景

    || 常用于selec 后面连接几个字段

    select '姓名:' || c.stuname || ', 课程:' || b.coursename || ', 成绩:' || a.score || '分数' as sxcj

    from score a, course b, stuinfo c

    where a.courseid = b.courseid

    and a.stuid = c.stuid

    展开全文
  • mysql where条件中的判断语句AND CASE 1 WHEN "Y"=(SELECT is_open from category as oca where oca.category_id=#{categoryId,jdbcType=VARCHAR})THEN (cat.category_id = #{categoryId,jdbcType=VARCHAR} OR cat....

    mysql where条件中的判断语句

    AND CASE 1 WHEN "Y"=(SELECT is_open from category as oca where oca.category_id=#{categoryId,jdbcType=VARCHAR})

    THEN (cat.category_id = #{categoryId,jdbcType=VARCHAR} OR cat.parent_id = #{categoryId,jdbcType=VARCHAR})

    ELSE (cat.category_id = #{categoryId,jdbcType=VARCHAR})

    END

    mybatis的配置文件:

    SELECT c.course_id AS courseId, c.category_id AS categoryId, c.school_id AS schoolId,

    c.course_type AS courseType, c.title, c.subtitle,c.summary, c.keywords, c.objectives, c.audiences, c.requirements,

    c.cover_image AS coverImage, c.promo_video_id AS promoVideoId, c.promo_video_url AS promoVideoUrl,

    c.privacy, c.passwd, c.is_free AS isFree,c. price, c.validity, c.user_id AS userId, c.status,

    c.is_recommended AS isRecommended, c.date_recommended AS dateRecommended,c.is_recommended_cetagory AS isRecommendedCetagory,

    c.ce_date_recommended AS ceDateRecommended, c.index_order AS indexOrder,c.special_order AS specialOrder, c.date_added AS dateAdded, c.last_modified AS lastModified,

    c.published_start_millis AS publishedStartMillis, c.published_end_millis AS publishedEndMillis, c.duration,

    u.nickname, u.avatar, cat.name As categoryName

    FROM course AS c

    LEFT JOIN user AS u ON(c.user_id = u.user_id)

    LEFT JOIN category AS cat ON(cat.category_id = c.category_id)

    WHERE c.school_id="wxj"

    AND CASE 1 WHEN "Y"=(SELECT is_open from category as oca where oca.category_id=#{categoryId,jdbcType=VARCHAR})

    THEN (cat.category_id = #{categoryId,jdbcType=VARCHAR} OR cat.parent_id = #{categoryId,jdbcType=VARCHAR})

    ELSE (cat.category_id = #{categoryId,jdbcType=VARCHAR})

    END

    AND c.course_type=#{courseType,jdbcType=VARCHAR}

    AND c.published_start_millis <= ${currTimeMillis} AND c.published_end_millis >= ${currTimeMillis}

    ]]>

    ORDER BY ${orderByClause}

    LIMIT ${limitClause}

    展开全文
  • sql语句where条件判断

    2021-03-26 10:39:10
    SELECT t_meter_s.eneid,eneval,time,enedesc,enetype, substring_index(enedesc,’##’,1) AS first_level, REPLACE(REPLACE(substring_index(enedesc,’##’,2),substring_index(enedesc,’##’,1),’’),’##’,...

    SELECT t_meter_s.eneid,eneval,time,enedesc,enetype, substring_index(enedesc,’##’,1) AS first_level,
    REPLACE(REPLACE(substring_index(enedesc,’##’,2),substring_index(enedesc,’##’,1),’’),’##’,’’) AS second_level, REPLACE(REPLACE(substring_index(enedesc,’##’,3),substring_index(enedesc,’##’,2),’’),’##’,’’) AS third_level, REPLACE(REPLACE(substring_index(enedesc,’##’,4),substring_index(enedesc,’##’,3),’’),’##’,’’) AS forth_levelFROM t_meter_s,t_enefr_configWHERE SUBSTRING(t_meter_s.eneid,1,’ c o u n t ′ ) = ′ {count}') = ' count)={ene_id}‘AND enetype = ‘${enetype}’
    AND ( ( enetype = ‘01’
    AND DATE_FORMAT(TIME,’%y-%m%d’)=DATE_FORMAT(NOW(),’%y-%m-%d’) )
    OR ( enetype = ‘10’ AND DATE_FORMAT(TIME,’%y-%m’) = DATE_FORMAT(NOW(),’%y-%m’) )
    OR ( enetype = ‘11’ AND DATE_FORMAT(TIME,’%y’) = DATE_FORMAT(NOW(),’%y’) ) )
    AND t_meter_s.eneid = t_enefr_config.eneid;

    展开全文
  • mysql中where条件查询

    千次阅读 2021-01-18 18:09:34
    #进阶2:条件查询/*语法:SELECT查询列表FROM表名WHERE筛选条件;分类:一、按条件表达式筛选条件运算符:> < = <> >= <=二、按逻辑表达式筛选逻辑运算符:作用:用于连接条件表达式&& ||...

    #进阶2:条件查询

    /*

    语法:

    SELECT

    查询列表

    FROM

    表名

    WHERE

    筛选条件;

    分类:

    一、按条件表达式筛选

    条件运算符:> < = <> >= <=

    二、按逻辑表达式筛选

    逻辑运算符:

    作用:用于连接条件表达式

    && || !

    and or NOT

    三、模糊查询

    LIKE beween AND

    in

    is NULL

    */

    #一、按条件表达式筛选

    #案例1:查询工资大于12000

    SELECT

    *

    FROM

    employees

    WHERE

    salary > 12000;

    #案例2:查询部门标号不等于90号的员工名和部门编号

    SELECT

    last_name,

    department_id

    FROM

    employees

    WHERE

    department_id <> 90;

    #二、按逻辑表达式筛选

    #案例1:查询工资在10000-20000之间的员工名、工资以及奖金

    SELECT

    last_name,

    salary,

    commission_pct

    FROM

    employees

    WHERE

    salary >= 10000

    AND salary <= 20000;

    #案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息

    SELECT

    *

    FROM

    employees

    WHERE

    NOT (

    department_id >= 90

    AND department_id <= 110

    )

    OR salary >= 15000;

    #三、模糊查询

    /*

    LIKE

    特点:①一般和通配符搭配使用

    通配符

    % 任意多个字符,包含0个字符

    _任意单个字符

    BETWEEN AND

    in

    is NULL| IS NOT NULL

    */

    #案例1:查询员工名中包含字符a 的员工信息

    SELECT

    *

    FROM

    employees

    WHERE

    last_name LIKE '%a%';

    #案例2:查询员工名中包含字符a的员工信息

    SELECT

    last_name,

    salary

    FROM

    employees

    WHERE

    last_name LIKE '__n_l%';

    #案例3:查询员工名中第二个字符为_的员工名

    SELECT

    last_name

    FROM

    employees

    WHERE

    last_name LIKE '_\_%';

    #---------------------------------------------

    #2 between AND

    /*

    ①使用between and可以提高语句的简洁度

    ②包含临界值

    ③两个临界值不要调换顺序*/

    #案例4:查询员工标号在100到120之间的员工信息

    SELECT

    *

    FROM

    employees

    WHERE

    employee_id BETWEEN 100

    AND 120;

    #3.IN

    /*

    含义:判断某字段的值是否属于in列表中 的某一项

    特点:① 使用in提高语句简洁度

    ②in列表的值类型必须一致或兼容

    */

    #案例:查询员工的公众编号是IT_PROG、AD_PRES中的一个员工名和工种编号

    SELECT

    last_name,

    job_id

    FROM

    employees

    WHERE

    job_id IN (

    'IT_PROG',

    'AD_PRES',

    'AD_VP'

    );

    #---------------------

    #4.is NULL

    #案例1.查询没有奖金的员工名和奖金率

    SELECT

    last_name,

    commission_pct

    FROM

    employees

    WHERE

    commission_pct IS NULL

    展开全文
  • MySQL WHERE条件查询

    2021-01-18 19:36:40
    在使用 MySQL SELECT语句时,可以使用 WHERE 子句来指定查询条件,从 FROM 子句的中间结果中选取适当的数据行,达到数据过滤的效果。语法格式如下:WHERE {,,…}其中,判定运算其结果取值为 TRUE、FALSE 和 ...
  • where条件查询

    2021-03-26 10:57:55
    1. where条件查询的介绍 使用where条件查询可以对表中的数据进行筛选,条件成立的记录会出现在结果集中。 where语句支持的运算符: 比较运算符 逻辑运算符 模糊查询 范围查询判断 where条件查询语法格式...
  • <select id="dongtaiSelect" resultMap="BaseResultMap" ... select * from person p <where> <if test="id != null and id != '' "> p.id=#{id} </if> <if test="name != n.
  • 1. # alter语句中在声明列的名称时,使用 after column 指定插入列的位置,first 为指定在列表的第一列first 插在表第一列after column名(插入... orselect * from class where not A and B > x or C < y a...
  • WHERE 条件有时候操作数据库时,只操作一些有条件限制的数据,这时可以在SQL语句中添加WHERE子句来规定数据操作的条件。语法:SELECT column,… FROM tb_name WHERE definitionWHERE 关键字后面接有效的表达式...
  • 删除表中数据 MYSQL数据类型和where条件判断 标签:str 日期 需要 日期类型 nbsp 常见 varchar sts tiny 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:...
  • 数据库MySQL之where条件查询

    千次阅读 2021-02-01 19:28:55
    where语句支持的运算符:比较运算符逻辑运算符模糊查询范围查询判断where条件查询语法格式如下:select * from 表名 where 条件;例:select * from students where id = 1;2. 比较运算符查询等于...
  • WHERE (case when (case when pp.business_type = ‘LEASE’ then 1 else 0 end) = 1 then pp.business_type else pp.document_type end) = (case when (case when pp.business_type = ‘LEASE’ then 1 else 0 end)...
  • WHERE 条件 有时候操作数据库时,只操作一些有条件限制的数据,这时可以在SQL语句中添加WHERE子句来规定数据操作的条件。 语法: SELECT column,… FROM tb_name WHERE definition WHERE 关键字后面接有效的表达式...
  • 在使用mysql的时候有时候会遇到,根据字段的不同值产生不同的判断条件,也就是在mysql查询条件where中使用case根据字段条件查询也许这样说的时候,意思还是表达不清楚,来看个需求吧我有2个表----表的结构`advertiser_...
  • $where = [ 'sms_date'=>['between',[$start_time,$end_time]], 'phone'=>'15323371121' ] Db::table('sms_code')->where($where)->count();
  • 例如:laravel框架中 很多复杂的业务,都需要根据参数判断model的where条件 问题描述: 例如:如果判断条件都是where还好,可以下列写法: $where = []; if($type==1){ $where['name'] = 'zhangsan'; } ...
  • SQL条件查询 where

    千次阅读 2021-03-17 17:17:45
    条件查询 where 语法:select 数据 from 数据源 where 进行过滤条件 select * from emp; select ename,sal,comm,job from emp; 当需要查询的字段不多的时候 建议写出字段名 方便后期操作。 select * from emp where ...
  • MySQL where型子查询

    千次阅读 2021-01-18 23:02:09
    where型子查询是内层查询的结果,作为外层sql的比较条件.select goods_id, goods_name from goods where goods_id = (select max(goods_id) from goods);内层查询为select max(goods_id) from goods外层查询为...
  • Lambda 动态多条件where查询 public async Task<IEnumerable<RoleControllerActionDto>> Query(int page, int limit, string name, int fatherid) { var listAsync = await _db.controller_action....
  • TP5 where条件查询

    2020-12-24 09:29:40
    直接写where条件:$rs=Db::name('manage')->where('type',$sotype)->whereor($type,'like',"%{$key}%")->order('id desc')->limit($limit)->page($page)->select();Where 条件表达式格式为:$map...
  • 1.where条件查询 wx.cloud.database().collection("password") .where({//条件查询 user: 'potato' }) .get() .then(res => { console.log("成功", res) this.setData({ list: res.data }) }) .cat...
  • 今天记录一下mysql 因为字段类型 不同在 进行where 条件查询时 的错误。 SELECT a.parent_id,b.id FROM cst_customer_address a JOIN cst_customer b WHERE a.parent_id = b.id; 查询结果: 可以看出这个查询结果...
  • 搜索了mysql随机查询,都是没有带where条件的,直接硬套的话limit获取到的记录个数不确定就需要一个while循环知道获取到需要的记录数,加了while循环的效率当然是很低很低的。也试了从数据库直接拿全部满足where条件...
  • 看到有资料说,where条件的顺序会影响查询的效率,根据的逻辑是:where条件的运行是从右到左的,将选择性强的条件放到最右边,可以先过滤掉大部分的数据(而选择性不强的条件过滤后的结果集仍然很大),在根据其它条件...
  • update 表名 set belongSysCode = 'DSJJQ' where use...将 where 条件中的改为: belongSysCode is null,执行成功 update assets_host set belongSysCode = ‘DSJJQ’ where useFor = ‘大数据集群’ and belongSysCod
  • 在ThinkPHP中,where方法可传入where数组条件,现在需要两个where数组条件之间使用or逻辑执行sql查询,也就是:$where['xx']=3;$where['yy']=9;$condition['ww']=33;$condition['zz']=99;现在需要条件是$where or $...
  • 格式:IF(,,)释义:如果condition为true,则执行前面的条件;condition为false,则执行后面的条件示例:查找名字为张三并且是地区是湖南,和名字不是张三的所有用户:SELECT*FROMUSERWHEREIF(NAME='张三',...
  • 简化条件 where 3 判断 if 场景1:通过id查询用户详情,如果id不存在查询所有。 功能接口的功能方法 List<User> selectBySQL(String uid); xml配置 <!-- 通过id查询详情 -->

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 238,485
精华内容 95,394
关键字:

where条件判断查询