如何在mysql、php中访问每个类别中相同数量的行
我想访问具有匹配值的表中的行,在我的表中,我有3列,每列可能包含1或0,如下所示如何在mysql、php中访问每个类别中相同数量的行,php,mysql,Php,Mysql,我想访问具有匹配值的表中的行,在我的表中,我有3列,每列可能包含1或0,如下所示 column1 column2 column3 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0
column1 column2 column3
1 0 0
0 1 0
0 0 1
1 1 0
0 0 1
0 1 0
. . .
. . .
这就是我试过的
$query = "SELECT column1, column2, column3 FROM tableName LIMIT 10";
$Res = $connection->query($query);
if($Res->rowCount() > 0) {
while($rows = $Res->fetch(PDO::FETCH_ASSOC)) {
if($rows['column1'] == 1) {
//body
}
if($rows['column2'] == 1) {
//body
}
if($rows['column3'] == 1) {
//body
}
}
}
但在这里,我没有得到每列10行。您已经给出了
限制10
,因此它将只从表中获取10行,而不查看该列中是否有0
或1
,因此,要克服这一问题,一种方法是删除限制10
而不是使用count
来保持1的计数
,并且只打印10行
。如下图所示:
$query = "SELECT column1, column2, column3 FROM tableName ";
$Res = $connection->query($query);
//counter for getting rows having 1's
c=0;
c1=0;
c2=0;
if($Res->rowCount() > 0) {
while($rows = $Res->fetch(PDO::FETCH_ASSOC)) {
if($rows['column1'] == 1) {
//checking if counter is < = to 10
if(c<=10){
//do something
c++;
}
}
if($rows['column2'] == 1) {
if(c1<=10){
//do something
c1++;
}
}
if($rows['column3'] == 1) {
if(c2<=10){
//do something
c2++;
}
}
}
}
$query=“从tableName中选择column1、column2、column3”;
$Res=$connection->query($query);
//用于获取具有1的行的计数器
c=0;
c1=0;
c2=0;
如果($Res->rowCount()>0){
while($rows=$Res->fetch(PDO::fetch_ASSOC)){
if($rows['column1']==1){
//检查计数器是否小于等于10
如果(cif anywhere)列有1,则我需要获取。这意味着我需要单独获取行。很抱歉,我误解了您的问题,请检查!此查询为每列返回10(任意)行(前提是至少存在10行)