不喜欢mysql查询

时间:2017-04-13 11:53:07

标签: mysql

在查询中使用LIKE而在使用NOT LIKE时无法正常工作时,我遇到了一个很大的问题。

我将在下面发布查询:

select DISTINCT (mails), name 
from disposable 
    JOIN (
            SELECT DISTINCT (mail) as mails,
                   CONCAT(toys.firstname, ' ' , toys.lastname) as name 
            FROM toys2 
                join toys ON toys.userid = toys2.id 
            where ( (toyid = '27' or toyid = '29') 
                    and status != 'Sold' 
                    and toys.regdate >= '2017-01-01'
                  )
        ) as tab 
WHERE tab.mails LIKE CONCAT('%@', disposable.email)

1 个答案:

答案 0 :(得分:0)

我认为你想要的更像是以下内容。请注意,我稍微简化了架构,以便为SQL Fiddle做一些工作。

SELECT c.email, c.name
  FROM customer c LEFT JOIN disposable d
    ON SUBSTR(c.email, INSTR(c.email, '@')+1, LENGTH(c.email)-INSTR(c.email, '@')) = d.email
 WHERE d.email IS NULL;

基本上,您在这里获取客户的域名并将其与disposable表中的条目相匹配。最终的WHERE子句使用IS NULL来确定非一次性的客户电子邮件地址 - 使用IS NOT NULL查找那些。

希望这有帮助。