我有2個表:voters
,banned_domains
我想所有的選票,除非禁止域 此查詢工作以及MySQL的NOT IN或NOT REGEXP
SELECT * FROM `voters` email NOT REGEXP('tempmail.com|tempmail.org')
我想請求另一個比較表,但是這個代碼不工作:
SELECT * FROM `voters` email NOT IN(SELECT domain FROM banned_domains)
非常感謝
UPDATE:我對不完整的數據表示歉意。 在voters
我有一個完整的電子郵件地址 例如「[email protected]」 但在banned_domains
我只有域名 例如「mail.com」
我改變了查詢,但它不工作
SELECT * FROM voters
WHERE DISTINCT RIGHT( voters.email , LENGTH( voters.email) - LOCATE( '@', voters.email)) NOT IN (SELECT domain FROM banned_domains)
ERROR:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT RIGHT( voters.email , LENGTH( voters.email) - LOCATE( '@', voters.e' at line 2
當你說「不行」,是它;語法錯誤,結果錯誤,什麼?此外,看起來像缺少'WHERE' – 2014-09-23 13:21:38
'NOT IN'完全匹配,它不會執行REGEXP匹配。 – Barmar 2014-09-23 13:22:59
這兩個查詢都缺少where子句。如果第一個作品,我認爲這只是一個印刷錯誤。 – 2014-09-23 13:24:11