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