sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo selecciono varios valores en la misma columna?

¿Qué tal usar IN en su lugar?

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`;

La razón por la que no se devuelven valores es por esta sección

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

family no pueden ser los 3 valores a la vez, pero podría ser 1 de los 3 valores.

Por eso usarías IN.

Otra forma de verlo sería usar OR, pero eso se vuelve muy largo.