MySQL中的多个OR子句

MySQL中的多个OR子句,sql,mysql,database,Sql,Mysql,Database,我试图抓取id=3或id=9或id=100的内容。。。记住,我可以有几百个这样的ID 编写查询最有效的方法是什么 $sql = "SELECT name FROM artists WHERE (id=3 OR id=9 OR .... id-100)" $sql=“从艺术家中选择名称,其中id为REGEXP regex pattern” 只调用所需的列,而不是使用* 您可能需要使用以下功能: ... WHERE id IN (3, 9, 100); 函数语法中的: expr IN(值,…)

我试图抓取id=3或id=9或id=100的内容。。。记住,我可以有几百个这样的ID

编写查询最有效的方法是什么

$sql = "SELECT name FROM artists WHERE (id=3 OR id=9 OR .... id-100)"
$sql=“从艺术家中选择名称,其中id为REGEXP regex pattern”

只调用所需的列,而不是使用
*

您可能需要使用以下功能:

... WHERE id IN (3, 9, 100);
函数语法中的

expr IN(值,…)

检查值是否在一组值内

如果
expr
等于
中的
列表中的任何值,则返回
1
,否则返回
0


您可以在条件中使用SQL

SELECT * FROM table WHERE ID IN ('1', '2', '3', '4');

-1... 如果存在索引,并且假设正则表达式模式可以更有效(如范围),这不是给定的(即不在post中),则效率低下。在某些情况下,将ID插入临时表并对其执行联接可能会更容易。当然,这需要进行测试,以确定有多少ID会使表创建开销变得值得。用子查询代替临时表怎么样<代码>。。。其中id位于(从…)中选择id
... WHERE id IN (3, 9, 100);
SELECT * FROM table WHERE ID IN ('1', '2', '3', '4');
SELECT * FROM table WHERE id IN (1,2,5);
SELECT * FROM table WHERE id IN (1,2,5)