Php Mysql显示所有记录
我需要一个SQL查询,显示所有记录,如果它也是重复的。比如说Php Mysql显示所有记录,php,mysql,Php,Mysql,我需要一个SQL查询,显示所有记录,如果它也是重复的。比如说 select * from table where true and p_id in(1,2,1,1) 仅显示1和2中的记录,但我需要在while循环中重复该记录 使用代码更新: $cook = unserialize($_COOKIE["pro_cook"]); foreach ($cook as $something) { $merc[] = $something; } foreach ($size as $new_size
select * from table where true and p_id in(1,2,1,1)
仅显示1和2中的记录,但我需要在while循环中重复该记录
使用代码更新:
$cook = unserialize($_COOKIE["pro_cook"]);
foreach ($cook as $something) {
$merc[] = $something;
}
foreach ($size as $new_size) {
$size_array[] = $new_size;
}
$items = count($merc);
$mer = rtrim(implode(',', array_reverse($merc)), ',');
$fulclr = "and p_id in (".$mer.")";
$asd = "(p_id,".$mer.")";
$result = mysql_query("select * from product_details where true ".$fulclr." order by field".$asd."");
希望这会有所帮助
$ids = "1,2,1,1";
$sql = "select * from table where true and p_id in (".$ids.")";
$rec = mysql_query($sql);
$dbData = array();
while($res = mysql_fetch_assoc($rec)) {
$dbData[$res['p_id']] = $res;
}
$ids = explode(',', $ids);
$newArray = array();
foreach ($ids as $id) {
if (!empty($dbData[$id])) {
$newArray[] = $dbData[$id];
}
}
请写一些你已经尝试过的代码,我想我们需要更多的信息。你能展示你目前拥有的代码吗?我想说,如果没有一个UNION或JOIN与同一个表,你就无法做到这一点——而基于你传递给in子句的ID动态地做到这一点几乎是不可能的。我建议你试着用代码而不是在查询中解决它。你应该将代码添加到你的问题@user312677。这取决于你的表结构。如果p_id column是uniqe,你只得到2行是正常的,但如果不是uniqe,你应该得到所有值为1和2的行,从p_id所在的表中选择*(1,2)足够了,但正如我说的,检查结构我认为mysql在(1,2)中的p_id和(1,2,1,1)中的p_id没有区别,所以我不明白你的意思。如果db中有多行的值为1或2,他将得到(1,2)中p_id的所有行,这就足够了
p_id
应该包含相同的值或不同的值?假设我们的表有5行,如果其中两行的p_id=1,其中一行的p_id=2,在本例中为“p_id in(1,2)”版本将返回3行。如果数据库中只有2条记录,那么?我认为这个问题清楚地说明了问题所在。我仍然不明白你的观点,如果数据库中有两条记录,如果它们的p_id为1或2,你将得到那两行,如果其中一条p_id=3,那么你只得到一行,以此类推,(1,2)状态中的p_id与此相同(p_id=1或p_id=2)