Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để chọn nhiều giá trị trong cùng một cột?

Làm thế nào về việc sử dụng IN thay thế

SELECT  `salesorder`,
        `masterproduct`,
        `family`,
        `birthstamp`,
        `duedate`, 
        COUNT( * ) AS `total` 
FROM    `report` 
WHERE   `birthstamp` BETWEEN '$startDT' AND '$endDT' 
AND     `family` IN ('Software_1Y','XI_1Y','PI_1Y')
GROUP BY    `salesorder`,
            `masterproduct`,
            `family`,
            `duedate`;

Lý do tại sao không có giá trị nào được trả về, là do phần này

AND `family` = 'Software_1Y' 
AND `family = 'XI_1Y' 
AND `family` = 'PI_1Y'

family không thể có cả 3 giá trị cùng một lúc, nhưng nó có thể là 1 trong 3 giá trị.

Đó là lý do tại sao bạn sẽ sử dụng IN.

Một cách khác để xem xét nó sẽ là sử dụng OR, nhưng điều đó thực sự dài dòng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phiên bản cơ sở dữ liệu / Kiểm soát thay đổi cho dữ liệu không phải giản đồ?

  2. Cách chọn từng bản ghi một mà không lặp lại

  3. ap_pass_brigade không thành công trong hàm handle_request_ipc

  4. Có thể gọi một thủ tục được lưu trữ MySQL từ Ruby không?

  5. Có lý do gì mà MySQL không hỗ trợ FULL OUTER JOINS không?