我有兩個表:一個包含電子郵件,另一個包含域。MySQL SELECT行部分匹配其他表中的字符串
Table1 Table2
id email id domain
-- ---- -- ----
1 [email protected] 1 domain1.com
2 [email protected] 2 domain4.com
3 [email protected]
4 [email protected]
現在我要選擇從表1中的所有電子郵件,其中域表2的場域匹配的結果應該是:
id email
-- ----
1 [email protected]
4 [email protected]
我想這將與REGEXP的組合工作和INNER JOIN?但我不知道如何組合它們。
怎麼樣SUBSTRING_INDEX(Table1.email, '@',-1 )= Table2.domain 帶有Table2.domain上的索引? – Rob 2011-05-07 22:37:25
Table2.Domain上的索引可能提供無關緊要的優勢,因爲域的列表將比電子郵件列表小得多。 – 2011-05-07 22:39:57
@Rob:對錶列的任何操作都會導致索引無用,因爲要比較的數據與索引所包含的數據不同。 – 2011-05-07 23:21:29