Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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 - Fatal编程技术网

Php 如何仅从MySql数据库表中获取某些行

Php 如何仅从MySql数据库表中获取某些行,php,mysql,Php,Mysql,我有一个“主键”值的php数组,它只对应于保存在MySql数据库中的一个非常长的数据表中的几行。 如何仅通过一个查询获取这些行。是否可能,或者是否需要对每个主键进行一次查询例如:从表1中选择*键=8573 谢谢, Patrick您可以使用MySQL的 您可以使用MySQL的 两种选择: select * from table1 where key in (8573, 5244, 39211); select * from table1 where key = 8573 or key = 5244

我有一个“主键”值的php数组,它只对应于保存在MySql数据库中的一个非常长的数据表中的几行。 如何仅通过一个查询获取这些行。是否可能,或者是否需要对每个主键进行一次查询<代码>例如:从表1中选择*键=8573

谢谢, Patrick

您可以使用MySQL的

您可以使用MySQL的

两种选择:

select * from table1 where key in (8573, 5244, 39211);
select * from table1 where key = 8573 or key = 5244 or key = 39211;
两种选择:

select * from table1 where key in (8573, 5244, 39211);
select * from table1 where key = 8573 or key = 5244 or key = 39211;

只需使用这种形式的选择

SELECT * FROM table1 WHERE key IN (1234, 1235, 6789, 9876)

只需使用这种形式的选择

SELECT * FROM table1 WHERE key IN (1234, 1235, 6789, 9876)
对于php数组,可以使用内爆

$key_array = implode(",", $array);

Select * from table WHERE primary_key IN ($key_array)
对于php数组,可以使用内爆

$key_array = implode(",", $array);

Select * from table WHERE primary_key IN ($key_array)

使用php的内爆函数:

$keys = array(1,2,3,4);
$sql = "SELECT * FROM table WHERE key IN ( " . implode($keys, ",") . ")";

使用php的内爆函数:

$keys = array(1,2,3,4);
$sql = "SELECT * FROM table WHERE key IN ( " . implode($keys, ",") . ")";
在大多数数据库中,“键入(设置)”比“键=a或键=b或…”工作得更快

特别是对于PHP,您可以使用内爆生成SQL:

$SQL=“从表中选择*输入(“.introde(',',$KeyArray))。”

假设为整数键。对于字符串键,您需要引用它们:

$SQL=“从输入(“”)的表中选择*。内爆(“,”,$KeyArray))。“)”

在大多数数据库中,“输入(设置)”的工作速度比“键=a或键=b或…”快

特别是对于PHP,您可以使用内爆生成SQL:

$SQL=“从表中选择*输入(“.introde(',',$KeyArray))。”

假设为整数键。对于字符串键,您需要引用它们:

$SQL=“从输入(“”)的表中选择*。内爆(“,”,$KeyArray))。“”)”

使用OR语句

SELECT * FROM table1 WHERE key=8573 OR key=9999;
当然,这可能会非常长,因此您可能需要使用循环并将键连接到查询字符串。

使用OR语句

SELECT * FROM table1 WHERE key=8573 OR key=9999;
$query = "SELECT * FROM tableName WHERE primaryKey IN ('" . implode("','", $keys) . "')";

当然,这可能会非常长,因此您可能需要使用循环并将键连接到查询字符串。

不要忘记为表添加索引。在“长数据表”上运行查询代价高昂。考虑添加:ALTERTABLE table1 add index(键)不要忘记为您的表添加索引。在“长数据表”上运行查询代价高昂。请考虑添加以下内容:中的alter table 1 add index(键)有点像SQL银弹,太多的程序员不使用它,因为他们不知道或忘记它的存在。中有点像SQL银弹,太多的程序员不使用它,因为他们不知道或忘记它的存在。
$query = "SELECT * FROM tableName WHERE primaryKey IN ('" . implode("','", $keys) . "')";