13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQLの演算子の優先順位について

Last updated at Posted at 2019-09-15

SQLの演算子に優先順位があるってことを知らなかったのでメモ

参考:https://hosochin.com/2021/11/10/post-999/

spring data jpaのspecificationでクエリを生成しようとしていたところ

生成したいクエリ
SELECT * FROM WHERE 条件A OR (条件B AND 条件C)
実際に生成されたクエリ
SELECT * FROM WHERE 条件A OR 条件B AND 条件C

どう頑張っても期待するクエリにならずハマった。。
が、上記の2つのクエリを叩いてみると・・・取得結果は変わらず、「?」ってなった。

SQLの演算子の優先順位

演算子の優先順位的に括弧が無くても AND が先に処理されるということでした。。必要ないからspecification側で生成されたクエリには括弧が入ってないってだけだったんですね。
参考欄にMySQLとOracleの演算子の優先順について載せておきます。

参考

Mysqlの演算子の優先順位
Oracleの演算子の優先順位

13
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?