[英]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.