Mysql 如何在同一列中选择多个值?
我试图在一列中选择多个值。基本上,我希望查询选择列Mysql 如何在同一列中选择多个值?,mysql,Mysql,我试图在一列中选择多个值。基本上,我希望查询选择列family下的所有值Software_1Y、XI_1Y和P1_1Y 我正在运行此查询: SELECT `salesorder` ,`masterproduct` ,`family` ,`birthstamp` ,`duedate` ,COUNT(*) AS `total` FROM `report` WHERE `birthstamp` BETWEEN '$startDT' AND '$e
family
下的所有值Software_1Y
、XI_1Y
和P1_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`;
我的查询不返回任何行,但当我逐个搜索每个族时,我有值
我的问题出了什么问题
另外,我的目的是获取
系列
值为Software_1Y
、XI_1Y
和PI_1Y
的所有行 改用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`;
没有返回值的原因是因为此部分
AND `family` = 'Software_1Y'
AND `family = 'XI_1Y'
AND `family` = 'PI_1Y'
族
不能同时是所有3个值,但它可能是3个值中的1个
这就是为什么你会在中使用
另一种看待它的方式是使用OR,但这会变得非常冗长
$query=" SELECT `salesorder`,`masterproduct`,`family`,`birthstamp`,`duedate`, COUNT( * ) AS `total` FROM `report`
WHERE `birthstamp` BETWEEN '$startDT' AND '$endDT'
AND (`family` = 'Software_1Y'
OR `family` = 'XI_1Y'
OR `family` = 'PI_1Y')
GROUP BY `salesorder`,`masterproduct`,`family`,`duedate` ";
查询“族”列时,它必须是由于而不是或
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
//Operation you want to perform
}
@jude:看起来您是直接将string类型的查询作为参数传递给mysql\u fetch\u数组,这是错误的。相反,请遵循上述方法……在中使用
,或更改为`family`='Software\u 1Y'或`family`='XI\u 1Y'或`family`='PI\u 1Y'
如果我错了请更正,但如果我使用了或
则我只得到一行对吗?我的目的是获取所有那些带有系列值的行。您可能希望在ORs周围放一些括号。。。和(family
='Software\u 1Y'或family='XI\u 1Y'或
family`='PI\u 1Y')@astander:是的。。。我也想到了。但后来我想它真的会影响这个特殊情况下的条件吗?是的,它肯定会,正如你所看到的那样,操作符的顺序是(“$startDT”和“$endDT”和family
='Software\u 1Y”)或family
='xiu 1Y'或family
='PI\u 1Y',这意味着你的SQL中有错误。您不检查mysql\u查询中的错误吗?错误消息应该告诉您错误在哪里。这是迄今为止对此类查询的最好解释。谢谢阿斯坦德