Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mysql atau/dan didahulukan?

Dokumentasi MySQL memiliki halaman bagus dengan informasi tentang operator mana yang didahulukan.

Dari halaman itu,

12.3.1. Prioritas Operator

Prioritas operator ditampilkan dalam daftar berikut, dari prioritas tertinggi hingga terendah. Operator yang ditampilkan bersama dalam satu baris memiliki prioritas yang sama.

INTERVAL
BINARY, COLLATE
!
- (unary minus), ~ (unary bit inversion)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
&&, AND
XOR
||, OR
= (assignment), :=

Jadi kueri asli Anda

Select
    *
from tablename 
where
    display = 1
    or display = 2
    and content like "%hello world%"
    or tags like "%hello world%"
    or title = "%hello world%"

akan ditafsirkan sebagai

Select
    *
from tablename 
where 
    (display = 1)
    or (
        (display = 2)
        and (content like "%hello world%")
    )
    or (tags like "%hello world%")
    or (title = "%hello world%")

Jika ragu, gunakan tanda kurung untuk memperjelas maksud Anda. Meskipun informasi di halaman MySQL sangat membantu, mungkin tidak langsung terlihat jika kueri pernah ditinjau kembali.

Anda mungkin mempertimbangkan sesuatu seperti berikut ini. Perhatikan bahwa saya telah mengubah title = "%hello world%" untuk title like "%hello world%" , karena itu lebih sesuai dengan tujuan yang Anda jelaskan.

Select
    *
from tablename 
where
    (
        (display = 1)
        or (display = 2)
    ) and (
        (content like "%hello world%")
        or (tags like "%hello world%")
        or (title like "%hello world%")
    )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menemukan dan Mengganti Teks di Database MySQL menggunakan SQL

  2. MySQL - Mengurangi nilai dari baris sebelumnya, kelompokkan menurut

  3. Tambahkan 2 jam ke waktu saat ini di MySQL?

  4. JSON_ARRAY() – Buat Array JSON dari Daftar Nilai di MySQL

  5. Duplikat, Salin, atau Cadangkan Tabel di MySQL, MariaDB, Oracle, PostgreSQL, DB2 dan SQLite dengan Create Table As SQL