Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何选择与其他列匹配的列的更多结果?_Mysql_Sql - Fatal编程技术网

Mysql 如何选择与其他列匹配的列的更多结果?

Mysql 如何选择与其他列匹配的列的更多结果?,mysql,sql,Mysql,Sql,我想知道是否可以从一个列中选择比其他列更多的结果: public function SameCars() { $q = "select * from carads where STATUS='1' and DEL='0' and ADID=".$_REQUEST['carID']; $result = $this->QueryResult($q); $myprice = intval($result[0]->PRICE); $body = $res

我想知道是否可以从一个列中选择比其他列更多的结果:

  public function SameCars() {
    $q = "select * from carads where STATUS='1' and DEL='0' and ADID=".$_REQUEST['carID'];
    $result = $this->QueryResult($q);
    $myprice = intval($result[0]->PRICE);
    $body = $result[0]->BODY;
    $pricelow = $myprice - (30/100 * $myprice);
    $pricehigh = $myprice + (30/100 * $myprice);
    $myyear= $result[0]->YEAR;
    $currentyear = date('Y');
    $yearlow = $myyear - 5;
    if ($yearhigh <= $currentyear-3) {
    $yearhigh = $myyear + 5;
    } else { $yearhigh = $myyear; }
    $samecars = $this->QueryResult("SELECT * FROM carads where BODY LIKE '$body' AND STATUS='1' AND YEAR BETWEEN $yearlow and $yearhigh and DEL='0' and TITLE !='' and TITLE !='-1' and IMAGE1 != '' and IMAGE1 != '-1' and PRICE BETWEEN $pricelow and $pricehigh LIMIT 0,3");
    $i=0;
    if (count($samecars)) {
        foreach ($samecars as $samecar) {$i++;
        if($i==3) $cls="news-row last"; else $cls="news-row";
        echo '<div class="'.$cls.'">
                    <div class="img"><a href="'.$base_path.'detail-page_'.$samecar->ADID.'.html">';

                    if($samecar->IMAGE1!='' && !empty($samecar))
                    echo '<img src="'.$samecar->IMAGE1.'" alt="" height="79" width="89" />';
                    else echo '<img src="'.$base_path.'uploads/no-img.jpg" height="79" width="89"/>';
                    echo '</a></div>
                    <div class="details">
                    <h5><a href="'.$base_path.'detail-page_'.$samecar->ADID.'.html">'.$samecar->TITLE.'</a></h5>
                    <div class="descn">"'.$this->FckContentView($this->closetags(substr($samecar->DESCRIPT, 0,50))).'</div>
                    </div>
                </div>';
        }
    }
}
公共函数SameCars(){
$q=“从carads中选择*,其中STATUS='1'和DEL='0'以及ADID=”.$\请求['carID'”;
$result=$this->QueryResult($q);
$myprice=intval($result[0]->PRICE);
$body=$result[0]->body;
$pricelow=$myprice-(30/100*$myprice);
$pricehigh=$myprice+(30/100*$myprice);
$myyear=$result[0]->YEAR;
$currentyear=日期('Y');
$yearlow=$myyear-5;
如果($yearhigh QueryResult(“从carads中选择*,其中BODY类似“$BODY”且STATUS='1',YEAR介于$yearlow和$yearhigh之间,DEL='0',TITLE!=''和TITLE!='-1',IMAGE1!='-1',PRICE介于$pricelow和$pricehigh限制0,3之间”);
$i=0;
如果(计数($samecar)){
foreach($samecar作为$samecar){$i++;
如果($i==3)$cls=“新闻行最后一条”;否则$cls=“新闻行”;
回声'
“'.$this->FckContentView($this->closetags(substr($samecar->DESCRIPT,0,50))。”
';
}
}
}
我希望
$make
比其他标准具有60%的重要性

例如,在这个查询中,它将从数据库中匹配这些条件的
MAKE
“BMW”中回显前3辆车的3个拇指列表。我想输出3个拇指;2个拇指来自BMW,1个拇指来自另一辆接近标准但不同
MAKE
的车

SELECT * FROM carads 
WHERE BODY LIKE '$body' 
AND MAKE = '$make'
AND STATUS='1' 
AND YEAR BETWEEN $yearlow and $yearhigh 
AND DEL='0' 
AND TITLE !='' 
AND TITLE !='-1' 
AND IMAGE1 != '' 
AND IMAGE1 != '-1' 
AND PRICE BETWEEN $pricelow and $pricehigh LIMIT 0,2
然后使用运行第二个查询

SELECT * FROM carads 
WHERE BODY LIKE '$body'
AND MAKE <> '$make' 
AND STATUS='1' 
AND YEAR BETWEEN $yearlow and $yearhigh 
AND DEL='0' 
AND TITLE !='' 
AND TITLE !='-1' 
AND IMAGE1 != '' 
AND IMAGE1 != '-1' 
AND PRICE BETWEEN $pricelow and $pricehigh LIMIT 0,1
从克拉中选择*
其中BODY类似于“$BODY”
然后做“$MAKE”
和STATUS='1'
年份介于$yearlow和$yearhigh之间
和DEL='0'
和标题!=''
和标题!='-1'
和图像1!=''
和图像1!='-1'
价格介于$pricelow和$pricelhigh之间,限制为0,1

尝试用一个查询执行此操作是可能的,但是非常混乱,我建议使用两个查询-这些限制将确保不会对数据库施加过多的负载

始终样式(缩进)你的代码放在这里之前…你的意思是你希望你的
WHERE
子句是
还是
而不是
?请提供一些示例数据和期望的结果。这是一个PHP问题还是一个SQL问题?请将其限制在一个域内。我会去掉你的edit@user3140607,只包含SQL-就是这样你感兴趣的是什么?是的,类似这样。但是我需要像添加新变量一样更改我的php代码吗?两个单独的数据库调用,而不是使用联合返回一个结果集?同一字段上的这两个
条件应该转换为
而不是()
。是的,但是你有60:40分割的问题-如果你能写一个有效的mysql查询,那么就按照我希望看到的那样去做,但是当我在结果上摆弄60:40分割时,意味着我的查询太长而且无法管理,所以2次调用似乎更好。