Hướng dẫn operator precedence mysql - toán tử ưu tiên mysql

12.4.1 & NBSP; Nhà điều hành được ưu tiên

Các tiền đề của người vận hành được hiển thị trong danh sách sau, từ ưu tiên cao nhất đến thấp nhất. Các toán tử được hiển thị cùng nhau trên một dòng có cùng mức độ.

INTERVAL
BINARY, COLLATE
!
- [unary minus], ~ [unary bit inversion]
^
*, /, DIV, %, MOD
-, +

&
|
= [comparison], , >=, >,  0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
4 phụ thuộc vào việc nó được sử dụng làm toán tử so sánh [
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
4] hay làm toán tử gán [
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
4]. Khi được sử dụng làm toán tử so sánh, nó có mức độ ưu tiên tương tự như
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
7,
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
8,
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
9,
[a = x] AND [b = y]
0,
[a = x] AND [b = y]
1,
[a = x] AND [b = y]
2,
[a = x] AND [b = y]
3,
[a = x] AND [b = y]
4,
[a = x] AND [b = y]
5,
[a = x] AND [b = y]
6 và
[a = x] AND [b = y]
7. Khi được sử dụng làm toán tử gán, nó có mức độ ưu tiên tương tự như
[a = x] AND [b = y]
8. Phần & NBSP; 13.7.6.1, Set Set Cú pháp để gán biến và phần & nbsp; 9.4, các biến do người dùng xác định, giải thích cách áp dụng giải thích của MySQL.

Đối với các nhà khai thác xảy ra ở cùng mức độ ưu tiên trong một biểu thức, việc đánh giá tiến hành từ trái sang phải, ngoại trừ các bài tập đánh giá từ phải sang trái.

Ưu tiên và ý nghĩa của một số toán tử phụ thuộc vào chế độ SQL:

  • Theo mặc định,

    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    0 là toán tử logic
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    1. Với
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    2 được bật,
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    0 là nối chuỗi, với mức độ ưu tiên giữa
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    4 và các toán tử Unary.

  • Theo mặc định,

    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    5 có ưu tiên cao hơn
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    6. Với
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    7 được bật,
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    5 và
    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL
    6 có cùng mức độ ưu tiên.

Xem Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.

Sự ưu tiên của các toán tử xác định thứ tự đánh giá các thuật ngữ trong một biểu thức. Để ghi đè thứ tự này và các điều khoản nhóm một cách rõ ràng, sử dụng dấu ngoặc đơn. Ví dụ:

mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT [1+2]*3;
        -> 9

12.4.2 & nbsp; các chức năng và toán tử so sánh

Bảng & NBSP; 12.4 & NBSP; Các toán tử so sánh

TênSự mô tả
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
9
Lớn hơn nhà điều hành
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
8
Toán tử lớn hơn hoặc bằng nhau
[a = x] AND [b = y]
1
Ít hơn nhà điều hành
[a = x] AND [b = y]
2,
[a = x] AND [b = y]
3
Không phải là toán tử bằng nhau
[a = x] AND [b = y]
0
Ít hơn hoặc người vận hành bằng nhau
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
7
Null-safe bằng người vận hành
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
4
Toán tử bình đẳng
[a  x] AND [b  y]
8
Liệu một giá trị có nằm trong một phạm vi của các giá trị
[a  x] AND [b  y]
9
Trả lại đối số không null đầu tiên
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
0
Trả lại đối số lớn nhất
[a = x] AND [b = y]
7
Liệu một giá trị có nằm trong một tập hợp các giá trị
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
2
Trả về chỉ mục của đối số nhỏ hơn đối số đầu tiên
[a = x] AND [b = y]
4
Kiểm tra giá trị chống lại Boolean
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
4
Kiểm tra giá trị chống lại Boolean
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
4
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
5
Không kiểm tra giá trị null
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
6
Kiểm tra giá trị null
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
7
Kiểm tra xem đối số có phải là null không
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
8
Trả lại đối số nhỏ nhất
[a = x] AND [b = y]
5
Phù hợp với mô hình đơn giản
[a  x] OR [b  y]
0
Liệu một giá trị không nằm trong một phạm vi của các giá trị
[a  x] OR [b  y]
1
Liệu một giá trị không nằm trong một tập hợp các giá trị
[a  x] OR [b  y]
2
Sự phủ định của kết hợp mô hình đơn giản
[a  x] OR [b  y]
3

So sánh hai chuỗi

Các hoạt động so sánh dẫn đến giá trị

[a  x] OR [b  y]
4 [
[a  x] OR [b  y]
5],
[a  x] OR [b  y]
6 [
[a  x] OR [b  y]
7] hoặc
[a  x] OR [b  y]
8. Các hoạt động này hoạt động cho cả số và chuỗi. Chuỗi được tự động chuyển đổi thành số và số thành chuỗi khi cần thiết.

=  >  <  >=   SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
8 hoặc
mysql> SELECT '.01'  '0.01';
        -> 1
mysql> SELECT .01  '0.01';
        -> 0
mysql> SELECT 'zapp'  'zappp';
        -> 1
0, máy chủ đã cố gắng đoán bối cảnh mà hàm được sử dụng và buộc các đối số của hàm vào loại dữ liệu của biểu thức nói chung. Ví dụ, các đối số cho
mysql> SELECT 0.1  1
8 được đánh giá và sắp xếp dưới dạng chuỗi, để biểu thức này trả về
mysql> SELECT 0.1  1
9. Trong MySQL 8.0.3 và sớm hơn, khi đánh giá biểu thức
mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT [1+2]*3;
        -> 9
00, máy chủ đã chuyển đổi các đối số thành số nguyên [dự đoán việc bổ sung số nguyên 0 thành kết quả] trước khi sắp xếp chúng, do đó trả về 2.

Bắt đầu với MySQL 8.0.4, máy chủ không còn cố gắng suy ra bối cảnh theo kiểu này. Thay vào đó, hàm được thực thi bằng cách sử dụng các đối số như được cung cấp, thực hiện chuyển đổi kiểu dữ liệu sang một hoặc nhiều đối số nếu và chỉ khi chúng không phải là cùng một loại. Bất kỳ loại ép buộc nào được bắt buộc bởi một biểu thức sử dụng giá trị trả về hiện được thực hiện sau khi thực thi chức năng. Điều này có nghĩa là, trong MySQL 8.0.4 trở lên,

mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT [1+2]*3;
        -> 9
01 đánh giá thành
mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT [1+2]*3;
        -> 9
02 và do đó là số nguyên 11. [BUG #83895, BUG #25123839]

Để chuyển đổi giá trị thành một loại cụ thể cho mục đích so sánh, bạn có thể sử dụng hàm

mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT [1+2]*3;
        -> 9
03. Các giá trị chuỗi có thể được chuyển đổi thành một bộ ký tự khác bằng
mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT [1+2]*3;
        -> 9
04. Xem Phần & NBSP; 12.11, Chức năng Cast Cast và toán tử.

Theo mặc định, các so sánh chuỗi không nhạy cảm trường hợp và sử dụng bộ ký tự hiện tại. Mặc định là

mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT [1+2]*3;
        -> 9
05.

  • mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    4

    Bình đẳng:

    mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1

    Để so sánh hàng,

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    07 tương đương với:

    [a = x] AND [b = y]
  • mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    7

    ________ 88 an toàn bằng nhau. Toán tử này thực hiện so sánh bình đẳng như toán tử

    mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    4, nhưng trả về
    [a  x] OR [b  y]
    4 thay vì
    [a  x] OR [b  y]
    8 nếu cả hai toán hạng là
    [a  x] OR [b  y]
    8 và
    [a  x] OR [b  y]
    6 thay vì
    [a  x] OR [b  y]
    8 nếu một toán hạng là
    [a  x] OR [b  y]
    8.

    Toán tử

    mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    7 tương đương với toán tử SQL
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    18 tiêu chuẩn.

    mysql> SELECT 1  1, NULL  NULL, 1  NULL;
            -> 1, 1, 0
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
            -> 1, NULL, NULL

    Để so sánh hàng,

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    19 tương đương với:

    [a  x] AND [b  y]
  • [a = x] AND [b = y]
    2,
    [a = x] AND [b = y]
    3

    Không công bằng:

    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1

    Để so sánh hàng,

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    22 và
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    23 tương đương với:

    [a  x] OR [b  y]
  • [a = x] AND [b = y]
    0

    Nhỏ hơn hoặc bằng:

    mysql> SELECT 0.1  1

    Để so sánh hàng,

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    25 tương đương với:

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    0
  • [a = x] AND [b = y]
    1

    Ít hơn:

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    1

    Để so sánh hàng,

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    27 tương đương với:

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    2
  • mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    8

    Lớn hơn hoặc bằng:

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    3

    Để so sánh hàng,

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    29 tương đương với:

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    4
  • mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    9

    Lớn hơn:

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    5

    Để so sánh hàng,

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    31 tương đương với:

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    6
  • mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    32 giữa
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    33 và
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    34

    Nếu

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 lớn hơn hoặc bằng
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    33 và
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 nhỏ hơn hoặc bằng
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    34,
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    39 trả về
    [a  x] OR [b  y]
    4, nếu không thì nó sẽ trả về
    [a  x] OR [b  y]
    6. Điều này tương đương với biểu thức [
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    33[
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    33 SELECT 1+2*3; -> 7 mysql> SELECT [1+2]*3; -> 9
    35 AND
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 SELECT 1+2*3; -> 7 mysql> SELECT [1+2]*3; -> 934] if all the arguments are of the same type. Otherwise type conversion takes place according to the rules described in Section 12.3, “Type Conversion in Expression Evaluation”, but applied to all the three arguments.

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    7

    Để có kết quả tốt nhất khi sử dụng

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    39 với các giá trị ngày hoặc thời gian, hãy sử dụng
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    03 để chuyển đổi rõ ràng các giá trị thành kiểu dữ liệu mong muốn. Ví dụ: Nếu bạn so sánh
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    48 với hai giá trị
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    49, hãy chuyển đổi các giá trị
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    49 thành các giá trị
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    48. Nếu bạn sử dụng một hằng số chuỗi như
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    52 trong so sánh với
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    49, hãy chuyển chuỗi vào A
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    49.

  • mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    32 Không giữa
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    33 và
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    34

    Điều này giống như không [

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 giữa
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    33 và
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    34].NOT [
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 BETWEEN
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    33 AND
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    34]
    .

  • ________ 161, ...]

    Trả về giá trị đầu tiên không phải là -____ 88 trong danh sách hoặc

    [a  x] OR [b  y]
    8 nếu không có giá trị không phải là 88.

    Loại trả về của

    [a  x] AND [b  y]
    9 là loại tổng hợp của các loại đối số.

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    8
  • ________ 166, ________ 167, ...]

    Với hai hoặc nhiều đối số, trả về đối số lớn nhất [có giá trị tối đa]. Các đối số được so sánh bằng cách sử dụng các quy tắc tương tự như đối với

    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    8.

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    9

    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    0 Trả về
    [a  x] OR [b  y]
    8 nếu có bất kỳ đối số nào là
    [a  x] OR [b  y]
    8.

  • mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    32 in [________ 173, ...]

    Trả về

    [a  x] OR [b  y]
    4 [Đúng] nếu
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 bằng với bất kỳ giá trị nào trong danh sách
    [a = x] AND [b = y]
    7, thì khác sẽ trả về
    [a  x] OR [b  y]
    6 [sai].

    Chuyển đổi loại diễn ra theo các quy tắc được mô tả trong Phần & NBSP; 12.3, Chuyển đổi loại trong đánh giá biểu thức, được áp dụng cho tất cả các đối số. Nếu không cần chuyển đổi loại cho các giá trị trong danh sách

    [a = x] AND [b = y]
    7, tất cả chúng đều không phải là không phải Tối ưu hóa diễn ra. Các giá trị mà danh sách được sắp xếp và việc tìm kiếm
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 được thực hiện bằng cách sử dụng tìm kiếm nhị phân, điều này làm cho hoạt động
    [a = x] AND [b = y]
    7 rất nhanh chóng.

    =  >  <  >=    <  >=    <  >=    <  >=    <  >=   SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    87.

    Để tuân thủ tiêu chuẩn SQL,

    [a = x] AND [b = y]
    7 trả về
    [a  x] OR [b  y]
    8 không chỉ nếu biểu thức ở phía bên trái là
    [a  x] OR [b  y]
    8, mà còn nếu không tìm thấy trận đấu nào trong danh sách và một trong các biểu thức trong danh sách là
    [a  x] OR [b  y]
    8.

    [a = x] AND [b = y]
    7 Cú pháp cũng có thể được sử dụng để viết một số loại truy vấn con. Xem phần & nbsp; 13.2.13.3, các nhóm phụ với bất kỳ, trong hoặc một số.

  • mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    32 không ở [________ 173, ...]

    Điều này giống như không [

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 trong [____ 173, ...]].NOT [
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 IN [
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    73,...]]
    .

  • ________ 197, ________ 198, ________ 199, ________ 200, ...]

    Trả về

    [a  x] OR [b  y]
    6 nếu
    =  >  <  >=   7
    mysql> SELECT [1+2]*3;
            -> 9
    98,
    [a  x] OR [b  y]
    4 nếu
    =  >  <  >=   7
    mysql> SELECT [1+2]*3;
            -> 9
    99, v.v. Tất cả các lập luận được coi là số nguyên. Yêu cầu
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    98 SELECT 1+2*3; -> 7 mysql> SELECT [1+2]*3; -> 999 < >= = = < >= < >= < >= < >= < >= < >= < >= < >= < >= < >= SELECT '.01' '0.01'; -> 1 mysql> SELECT .01 '0.01'; -> 0 mysql> SELECT 'zapp' 'zappp'; -> 16

    =  >  <  >=    <  >=    <  >=    <  >=    <  >=    <  >=    <  >=    <  >=    <  >=   SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    6 có thể bị vô hiệu hóa bằng cách đặt
    =  >  <  >=    <  >=   SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    0

    Đối với các cột

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    49 và
    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    48 được khai báo là
    =  >  <  >=    <  >=    <  >=    <  >=   SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    5

    mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    1
  • ISNULL[

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35]

    Kiểm tra xem một giá trị không phải là

    [a  x] OR [b  y]
    8.

    mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    2

    Nếu

    mysql> SELECT 1+2*3;
            -> 7
    mysql> SELECT [1+2]*3;
            -> 9
    35 là
    [a  x] OR [b  y]
    8,
    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    7 trả về
    [a  x] OR [b  y]
    4, nếu không nó sẽ trả về
    [a  x] OR [b  y]
    6.

    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    7 có thể được sử dụng thay vì
    mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    4 để kiểm tra xem giá trị có phải là
    [a  x] OR [b  y]
    8 hay không. [So ​​sánh giá trị với
    [a  x] OR [b  y]
    8 bằng cách sử dụng
    mysql> SELECT 1 = 0;
            -> 0
    mysql> SELECT '0' = 0;
            -> 1
    mysql> SELECT '0.0' = 0;
            -> 1
    mysql> SELECT '0.01' = 0;
            -> 0
    mysql> SELECT '.01' = 0.01;
            -> 1
    4 luôn mang lại
    [a  x] OR [b  y]
    8.]

  • Hàm

    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    7 chia sẻ một số hành vi đặc biệt với toán tử so sánh
    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    6. Xem mô tả của
    mysql> SELECT '.01'  '0.01';
            -> 1
    mysql> SELECT .01  '0.01';
            -> 0
    mysql> SELECT 'zapp'  'zappp';
            -> 1
    6.

    ________ 260, ________ 167, ...]

    • Với hai hoặc nhiều đối số, trả về đối số nhỏ nhất [có giá trị tối thiểu]. Các đối số được so sánh bằng cách sử dụng các quy tắc sau:

    • Nếu bất kỳ đối số là

      [a  x] OR [b  y]
      8, kết quả là
      [a  x] OR [b  y]
      8. Không cần so sánh.

    • Nếu tất cả các đối số được định giá nguyên, chúng được so sánh như số nguyên.

    • Nếu ít nhất một đối số là độ chính xác gấp đôi, chúng được so sánh là các giá trị chính xác kép. Mặt khác, nếu ít nhất một đối số là giá trị

      =  >  <  >=    <  >=   SELECT 1 = 0;
              -> 0
      mysql> SELECT '0' = 0;
              -> 1
      mysql> SELECT '0.0' = 0;
              -> 1
      mysql> SELECT '0.01' = 0;
              -> 0
      mysql> SELECT '.01' = 0.01;
              -> 1
      3

Bài Viết Liên Quan

Chủ Đề