SQL 语句之 ‘OR‘

编程知识 更新时间:2023-04-05 01:39:50

修数据时需特别注意,如果sql语句中存在 or 连接条件,一定要加小括号,重中之重。

1、如下没加小括号:
SELECT
	*
FROM
	e_storage_cost_batch
WHERE
	batch_number IN (
	SELECT
		e1.batch_number 
	FROM
		e_storage_cost_batch e1
		JOIN e_storage_cost_batch_init e2 ON e1.warehouse_id = e2.warehouse_id 
	WHERE
		e1.batch_type = 'shipment' or e1.batch_type = 'adjustment'
		AND e1.create_time < e2.create_time
	); 

查询出来的数据有1038条,并且还有与条件中 batch_type 中值,不一致的情况,如下图:

2、加了小括号之后,如下:
SELECT
	*
FROM
	e_storage_cost_batch
WHERE
	batch_number IN (
	SELECT
		e1.batch_number 
	FROM
		e_storage_cost_batch e1
		JOIN e_storage_cost_batch_init e2 ON e1.warehouse_id = e2.warehouse_id 
	WHERE
		( e1.batch_type = 'shipment' or e1.batch_type = 'adjustment' )
		AND e1.create_time < e2.create_time
	); 

没有任何记录,如下图:

总结:

只要sql语句中存在 ‘or’ ,一定要检查是否需要加小括号;

更多推荐

SQL 语句之 ‘OR‘

本文发布于:2023-04-05 01:39:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/4b357c7db9e3316519f81da9e58d799e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语句   SQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 44163文章数
  • 14阅读数
  • 0评论数