Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
使用PHP中的数组数据集在mysql的多列中查找匹配项_Php_Mysql_Arrays_Pattern Matching - Fatal编程技术网

使用PHP中的数组数据集在mysql的多列中查找匹配项

使用PHP中的数组数据集在mysql的多列中查找匹配项,php,mysql,arrays,pattern-matching,Php,Mysql,Arrays,Pattern Matching,我有一个PHP数组:数组(关键字1、blah0、blah1、blah2)和一个SQL查询 在查询中,我想找出数组中的一个数据是否存在于所选的少数列中。(columnA | columnB | columnC),如果为true,则获取该行。我想这就是您想要的。我不知道是否要检查数组中每一列的每一个值 SELECT * FROM tableName WHERE columnA = $phpArray[0] OR columnA = $phpArray[0] OR columnB = $phpArra

我有一个PHP数组:
数组(关键字1、blah0、blah1、blah2)
和一个SQL查询


在查询中,我想找出数组中的一个数据是否存在于所选的少数列中。
(columnA | columnB | columnC)
,如果为true,则获取该行。

我想这就是您想要的。我不知道是否要检查数组中每一列的每一个值

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
$sql=“从tableName WHERE选择*”;

对于($i=0;$i),您需要这样的查询:

$instring = implode("','", $array);
$sql = "SELECT `xy` FROM `z` WHERE (`columnA` IN ('".$instring."')
OR `columnB` IN ('".$instring."')
OR `columnC` IN ('".$instring."'))";

+1因为这会起作用,但是32bitfloat在
中使用SQL的
的答案更具可读性。谢谢,看起来我还是犯了几个错误。我不知道
语句中的
,所以从中我学到了一些东西。:)