我运行此查询MySQL查询返回不正确的结果与多个般的表情
SELECT `contacts`.*
FROM `contacts`
WHERE
((email NOT LIKE '%domain1%') AND
(email NOT LIKE '%domain2%') AND
(email NOT LIKE '%domain3%') AND
(email NOT LIKE '%domain4%')
) AND (
DATE(created_at) = '2014-03-21'
)
结果是
=> [["[email protected]", Fri, 21 Mar 2014 06:17:07 UTC +00:00],
["[email protected]", Fri, 21 Mar 2014 17:05:21 UTC +00:00]]
问题
- 结果应该排除与“域1”的所有行,“domain2”等等......但它并没有这样做
PS:查询结果没有显示为MySQL输出,因为我从rails控制台运行它。
Contact.external.created_on(Time.parse("2014-03-21 ")).collect {|e| [e.email, e.created_at]}
你肯定是查询正在运行?它应该做你期望的并且过滤掉这四个域。 –
只是建议,我建议在您的域名中包含TLD,例如“domain1.com”。然后你可以使用'SUBSTRING(email ...)'而不是'LIKE'。我认为这可以提高表现。 –
如果您需要检查它,您可以从您的mysql.log文件中提取实际查询 – andrew