mysql在多行中搜索

时间:2012-09-04 06:26:41

标签: mysql search

问:如何在多行中进行mysql查询搜索

我想要进行脚本搜索的是:

if kat_preces_params.params_id is equal to 124 AND kat_preces_params.nosaukums is  LIKE '%$make%',

AND if kat_preces_params.params_id is equal to 125 AND kat_preces_params.nosaukums is LIKE '%$model%' 

AND IF kat_preces_params.params_id is equal to 126 AND kat_preces_params.nosaukums <=2009 AND kat_preces_params.nosaukums >=2000

我是怎么做到的(我知道这是错的,因为它没有显示正确的值......):

PHP检查年份:

if($year == '2010 - ...'){
    $gads = 'kat_preces_params.nosaukums <=2010';
}
elseif($year == '2000 - 2009'){
    $gads = 'kat_preces_params.nosaukums <=2009 AND kat_preces_params.nosaukums >=2000';
}
elseif($year == '2000 - 2004'){
    $gads = "kat_preces_params.nosaukums <=2004 AND kat_preces_params.nosaukums >= 2000";
}
elseif($year == '... - 1999'){
    $gads = "kat_preces_params.nosaukums <=1991";

}

我有一个看起来像这样的mysql查询:

SELECT kat_prece.*, kat_preces_params.* FROM kat_prece, kat_preces_params WHERE pamat_kat_sad = '$cat_mod_id' 
AND kat_prece.preces_id = kat_preces_params.preces_id 
AND ((
    kat_preces_params.params_id=124 
    AND kat_preces_params.nosaukums LIKE '%$make%'
    ) 
    || (
        kat_preces_params.params_id=125 
        AND kat_preces_params.nosaukums LIKE '%$model%'
        ) 
    AND kat_preces_params.params_id=126 
    AND $gads
    )

$model$make是请求值

也许有可能用INNER JOIN或某种方式(对内连接一无所知)?

谢谢!

1 个答案:

答案 0 :(得分:0)

  • $gads定义更改为:kat_preces_params.nosaukums BETWEEN 2000 AND 2009,依此类推。
  • 从您的第一组先决条件开始,我认为您需要的是:kat_preces_params.params_id IN (124, 125, 126) AND kat_preces_params.nosaukums LIKE '%$make%' OR kat_preces_params.nosaukums LIKE '%$model%'

我不明白的是kat_preces_params.nosaukums中哪些类型的数据与 INTEGER 进行比较,而另一次, STRINGS