Giữa có bao gồm các điểm cuối mysql không?
Nếu expr lớn hơn hoặc bằng min và expr nhỏ hơn hoặc bằng max, BETWEEN trả về 1, ngược lại trả về 0. Điều này tương đương với biểu thức (min <= expr AND expr <= max) nếu tất cả các đối số cùng loại. Mặt khác, chuyển đổi loại diễn ra theo các quy tắc được mô tả tại Chuyển đổi loại, nhưng được áp dụng cho cả ba đối số Show
ví dụSELECT 1 BETWEEN 2 AND 3; +-------------------+ | 1 BETWEEN 2 AND 3 | +-------------------+ | 0 | +-------------------+ SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+ SELECT 2 BETWEEN 2 AND '3'; +---------------------+ | 2 BETWEEN 2 AND '3' | +---------------------+ | 1 | +---------------------+ SELECT 2 BETWEEN 2 AND 'x-3'; +-----------------------+ | 2 BETWEEN 2 AND 'x-3' | +-----------------------+ | 0 | +-----------------------+ 1 row in set, 1 warning (0.00 sec) Warning (Code 1292): Truncated incorrect DOUBLE value: 'x-3' VÔ GIÁ TRỊ SELECT 1 BETWEEN 1 AND NULL; +----------------------+ | 1 BETWEEN 1 AND NULL | +----------------------+ | NULL | +----------------------+ Ví dụ về NGÀY, DATETIME và DẤU THỜI GIAN. Bỏ qua thành phần thời gian so sánh với CREATE TABLE `x` ( a date , b datetime, c timestamp ) INSERT INTO x VALUES ('2018-11-11', '2018-11-11 05:15', '2018-11-11 05:15'), ('2018-11-12', '2018-11-12 05:15', '2018-11-12 05:15'); SELECT * FROM x WHERE a BETWEEN '2018-11-11' AND '2018-11-12'; +------------+---------------------+---------------------+ | a | b | c | +------------+---------------------+---------------------+ | 2018-11-11 | 2018-11-11 05:15:00 | 2018-11-11 05:15:00 | | 2018-11-12 | 2018-11-12 05:15:00 | 2018-11-12 05:15:00 | +------------+---------------------+---------------------+ SELECT * FROM x WHERE b BETWEEN '2018-11-11' AND '2018-11-12'; +------------+---------------------+---------------------+ | a | b | c | +------------+---------------------+---------------------+ | 2018-11-11 | 2018-11-11 05:15:00 | 2018-11-11 05:15:00 | +------------+---------------------+---------------------+ SELECT * FROM x WHERE c BETWEEN '2018-11-11' AND '2018-11-12'; +------------+---------------------+---------------------+ | a | b | c | +------------+---------------------+---------------------+ | 2018-11-11 | 2018-11-11 05:15:00 | 2018-11-11 05:15:00 | +------------+---------------------+---------------------+ Bình luậnNội dung được sao chép trên trang web này là tài sản của chủ sở hữu tương ứng và nội dung này không được MariaDB xem xét trước. Quan điểm, thông tin và ý kiến được thể hiện bởi nội dung này không nhất thiết đại diện cho quan điểm của MariaDB hoặc bất kỳ bên nào khác Không có gì đánh bại kinh nghiệm thực tế trong lập trình. Trên thực tế, hầu hết mọi thứ trong cuộc sống đều được học hỏi thông qua kinh nghiệm Gần đây, tôi đang triển khai một tính năng trong ứng dụng web ngăn xếp LAMP và gặp khó khăn khi lọc truy vấn MySQL theo các giá trị cột Tôi có ấn tượng rằng
Rốt cuộc, kết quả truy vấn không chính xác chỉ có vậy; Ứng dụng web tôi đang làm sử dụng MariaDB 10. 2. 38. Tuy nhiên, tôi đang sử dụng MySQL Phiên bản 8. 0. 25 cho dữ liệu và ví dụ trong bài đăng này Thiết lập dữ liệu giảTôi sẽ tạo một bảng đơn giản cho mục đích demo, có 3 cột Mặc dù tôi không nhất thiết cần phần thành phần Thời gian của kiểu dữ liệu SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+4 thành SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+5 và SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+6 bằng cách sử dụng từ khóa SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+4 khi bạn muốn cột DateTime hiện tại Đối với những trường hợp mà bạn cần lưu trữ một ngày cụ thể, bạn cũng có thể dễ dàng SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+6 những ngày đó, bỏ qua phần Thời gian Tất cả các truy vấn sau đây đều được thực hiện tại thời điểm hiện tại của bài viết này, ngày 2 tháng 6 năm 2021, như được hiển thị với hàm SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+5 Dữ liệu có trong bảng 'practice_names' được hiển thị bên dưới Tất cả dữ liệu từ bảng practice_namesLọc hàng theo ngày sử dụng BETWEENNếu tôi muốn tất cả các hàng được trả về giữa — và bao gồm cả — ngày '2021–05–31' và '2021–06–02', truy vấn này sẽ thực hiện Kết quả truy vấn không có số hàng chính xácĐợi tí Những kết quả truy vấn đó không chính xác 2 hàng có giá trị Ngày là '2021–06–02' cũng phải được đưa vào tập kết quả trả về Đưa cái gì? Type-casting sử dụng chức năng CAST()Sau nhiều lần vò đầu bứt tai và tra Google để khởi động, tôi phát hiện ra rằng cột 'inclusion_date' có thể được chuyển kiểu thành kiểu dữ liệu Sử dụng hàm Tại sao truy vấn này hoạt động khi chuyển kiểu từ cột ________ 7 sang cột ________ 83 bằng cách sử dụng ________ 85? Hãy xem liệu chúng ta có thể trả lời câu hỏi đó bằng các truy vấn tiếp theo bổ sung hay không… Tôi có thể đảm bảo với bạn một điều. Nếu bạn mua cho tôi một ly cà phê, tôi sẽ uống nó Bao gồm cả phần Thời gian trong GIỮA Truy vấnDựa trên dữ liệu có trong bảng 'practice_names', các hàng có giá trị SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+4 ( SELECT 'b' BETWEEN 'a' AND 'c'; +-------------------------+ | 'b' BETWEEN 'a' AND 'c' | +-------------------------+ | 1 | +-------------------------+5) Tôi sẽ thực hiện một truy vấn mà không sử dụng Không có thay đổi ở đó Bây giờ, làm thế nào về việc bao gồm một phần Thời gian cho đến tận nửa đêm? Bao gồm một phần thời gian cho đến gần nửa đêm…Số hàng chính xác được trả về trong truy vấn này Tôi cảm thấy rằng bằng cách bao gồm giá trị phần Thời gian của Bao gồm một giá trị Phần thời gian có thể không phải là một giải pháp thực tế vì bạn sẽ cần có kiến thức trực tiếp về các giá trị Phần thời gian cho mỗi cột Tài nguyên thông tin bổ sung
Tôi hy vọng rằng nếu bạn đang phải đối mặt với cùng một loại mâu thuẫn trong các truy vấn cột Đọc thêmHãy chắc chắn và truy cập bất kỳ bài đăng blog nào dưới đây để biết nội dung tương tự
Giống như nội dung, bạn đã đọc trong bài viết này? Ở đó, bạn sẽ tìm thấy các bài đăng trên blog về phát triển/lập trình cơ sở dữ liệu SQL và phát triển web ngăn xếp LAMP Gần đây, tôi đã bắt đầu gửi email hàng tuần để chia sẻ về mọi thứ mà tôi quan tâm, tôi đang tìm hiểu hoặc tôi đã viết về SQL/PHP. Nếu đó là điều bạn quan tâm, hãy đăng ký tại đây Giữa có bao gồm các điểm cuối trong truy vấn SQL không?Toán tử BETWEEN chọn các giá trị trong một phạm vi nhất định. Các giá trị có thể là số, văn bản hoặc ngày tháng. Toán tử BETWEEN đã bao hàm. giá trị bắt đầu và kết thúc được bao gồm
Là giữa trong MySQL bao gồm?Toán tử BETWEEN của MySQL bao gồm . Ví dụ: khi bạn sử dụng toán tử BETWEEN của MySQL để truy xuất những cuốn sách có giá nằm trong khoảng từ 50 đến 90, kết quả sẽ truy xuất tất cả những cuốn sách này, bao gồm cả những cuốn sách có giá bằng 50 hoặc 90.
Chúng ta có thể sử dụng giữa trong MySQL không?Toán tử BETWEEN trong MySQL, hay viết tắt là "GIỮA", là toán tử logic được sử dụng để chọn một dải giá trị từ bảng cơ sở dữ liệu . Sử dụng BETWEEN, chúng ta cũng có thể kiểm tra xem một giá trị có nằm trong phạm vi được cung cấp hay không. Truy vấn giữa trong MySQL thường được sử dụng với câu lệnh SELECT.
Việc sử dụng trong và giữa các truy vấn MySQL là gì?Điều kiện BETWEEN của SQL cho phép bạn dễ dàng kiểm tra xem một biểu thức có nằm trong một dải giá trị (bao gồm) hay không . Các giá trị có thể là văn bản, ngày hoặc số. Nó có thể được sử dụng trong câu lệnh SELECT, INSERT, UPDATE hoặc DELETE. |