Php 如何仅从MySql数据库表中获取某些行
我有一个“主键”值的php数组,它只对应于保存在MySql数据库中的一个非常长的数据表中的几行。 如何仅通过一个查询获取这些行。是否可能,或者是否需要对每个主键进行一次查询<代码>例如:从表1中选择*键=8573 谢谢, Patrick您可以使用MySQL的 您可以使用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
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) . "')";