0

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

どうやってやろうとしたか(正しい値が表示されないため、間違っていることはわかっています...):

年をチェックする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わけか(内部結合について何も知らない)可能でしょうか?

ありがとう!

4

1 に答える 1

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として比較している場所に、どのタイプのデータがあるかということです。

于 2012-09-04T06:37:39.800 に答える