2

PHP 配列Array(keyword1,blah0,blah1,blah2)と SQL クエリがあります。

クエリでは、配列内のデータの 1 つが選択されたいくつかの列の 1 つに存在するかどうかを確認し(columnA|columnB|columnC)、true の場合はその行をフェッチします。

4

2 に答える 2

1

これがあなたの望むものだと思います。配列内のすべての値についてすべての列をチェックしたいかどうかわかりませんでした。

SELECT * FROM tableName
WHERE columnA = $phpArray[0] OR
columnA = $phpArray[0] OR
columnB = $phpArray[0] OR
columnC = $phpArray[0] OR
columnA = $phpArray[1] OR
columnB = $phpArray[1] OR
columnC = $phpArray[1] OR
columnA = $phpArray[2] OR
columnB = $phpArray[2] OR
columnC = $phpArray[2] OR 
... 
columnC = $phpArray[n];

PHP を使用して、ループ内でこのステートメントを作成できます。

$sql = "SELECT * FROM tableName WHERE ";
for($i=0;$i<count(phpArray)-1;$i++){
   $sql .= "columnA = "+"'"+$phpArray[$i]+"'"+ OR "
   $sql .= "columnB = +"'"+$phpArray[$i]+"'"+ OR "
   $sql .= "columnC = +"'"+$phpArray[$i]+"'"+ OR "
}
$sql .= "columnA = +"'"+$phpArray[$i]+"'"+ OR "
$sql .= "columnB = +"'"+$phpArray[$i]+"'"+ OR "
$sql .= "columnC = +"'"+$phpArray[$i]+"'"+;"
*send sql query

編集:コードのエラーを修正

于 2012-07-12T15:53:59.723 に答える
1

You'll need a query like this:

$instring = implode("','", $array);
$sql = "SELECT `xy` FROM `z` WHERE (`columnA` IN ('".$instring."')
OR `columnB` IN ('".$instring."')
OR `columnC` IN ('".$instring."'))";
于 2012-07-12T15:57:33.573 に答える