0
我有2个表中MySQL数据库同一查询的多个表的MySQL
T1 : registration
T2 : multiple_email
,我有在这两个表中的字段EMAIL_ID。我想运行查询来查看电子邮件是否有效。所以,我可以运行2个查询为
select count(*) from registration where emailid = $emailid
select count(*) from multiple_email where emailid = $emailid
如果其中一个计数大于0,我认为它是一个有效的电子邮件。
在单个查询中是否有一种优雅的方式呢?
'COUNT(*)'在这种情况下,将扫描只是'emailid'指数(当然,如果有一个索引) – a1ex07
@ alex17,我认为你应该阅读有关工作在innodb中计数(*)。有时非常缓慢。无论如何,得到emailid或者我比计数快。 –
@ Andrej L:你在说inno数据库中的COUNT(*)'没有'WHERE'条件(在问题中有'WHERE')。 COUNT(*)'/或'COUNT(constant_value,例如1)'+'WHERE indexed_field = whatever'扫描索引,而不是db。 'COUNT(indexed_field)+'WHERE indexed_field = whatever'扫描索引并消除NULL值。 'SELECT indexed_field' +'WHERE indexed_field = whatever'不会比'COUNT(*)'更快。 – a1ex07