mysql多行搜索

mysql多行搜索,mysql,search,Mysql,Search,Q:如何进行多行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_prece

Q:如何进行多行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
$model
$make
是请求的值

也许可以使用
内部连接
或某种方式(对内部连接一无所知)

谢谢大家!


  • $gads
    的定义更改为:
    2000年至2009年期间的kat_preces_params.nosakums
    ,依此类推
  • 根据您的第一组先决条件,我认为您需要的是:
    kat_precess_params.params_id IN(124125126)和kat_precess_params.nosakums,如“%$make%”或kat_precess_params.nosakums,如“%$model%”

我不明白的是,
kat_preces_params.nosakums
中有什么类型的数据,您曾经将它们作为整数进行比较,而另一次作为字符串进行比较,您尝试过该查询吗?发生了什么?你有错误吗?哪一个?Nosakums的数据类型实际上是什么?
kat_precess_params.Nosakums
kat_precess_params.Nosakums
数据类型是什么longtext@Pēteris您能提供SQLFIDLE上的示例表吗?另外,请用一个例子解释你想要什么样的输出。
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";

}
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
    )