繁体   English   中英

MySQL-有更好的方法在查询中使用许多OR省略符吗?

[英]mySQL - Is there a better way of using many OR oparators in query?

我有一个庞大的会员数据库。 假设我有10个名字。 我需要以最快的方式从成员表中获取这些成员最后一次看到的值。 我努力了

SELECT lastseen FROM members WHERE 
name='Pierce' OR 
name='John' OR 
name='Steven' OR 
name='James' OR 
name='Ernie' OR 
name='Stuart' OR
name='Blake' OR
name='Shaun' OR
name='Pat' OR
name='Lola'

但是在查询中使用许多OR省略符是一种不专业的方法,而且很慢,是否有更好的方法?

使用IN

SELECT lastseen
FROM members
WHERE name IN ('Pierce', 'John', . . . )

在MySQL中,使用IN代替OR甚至具有性能优势。 MySQL将创建一个二叉树来搜索值(假设它们是常量),从而加快了处理速度。

使用SQL的IN关键字:

SELECT lastseen FROM members WHERE 
name IN ('Pierce', 'John', 'Steven', ...);

使用PHP时,不要忘记使用准备好的语句和绑定参数。 参见https://secure.php.net/manual/en/pdo.prepare.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM