如何在同一列中选择多个值?

Jud*_*ude 12 mysql

我试图在一列中选择多个值.基本上我想查询以选择下列所有那些family与价值观Software_1Y,XI_1YP1_1Y

我正在运行此查询:

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

我的查询没有返回任何行但是我逐个搜索每个家庭,我有值.

我的查询有什么问题?

另外,我的目的是让所有那些行familySoftware_1Y,XI_1YPI_1Y.

Adr*_*der 14

如何使用IN代替

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`;
Run Code Online (Sandbox Code Playgroud)

没有返回值的原因是因为本节

AND `family` = 'Software_1Y' 
AND `family = 'XI_1Y' 
AND `family` = 'PI_1Y'
Run Code Online (Sandbox Code Playgroud)

family 不能同时为3个值,但可能是3个值中的1个.

这就是你使用IN的原因.

另一种看待它的方法是使用OR,但这会很长.

  • 这意味着您的SQL中存在错误.你不检查`mysql_query`的错误吗?错误消息应该告诉您错误在哪里. (2认同)