我想用我的mysql数据库使用IN
运算符运行一个查询。mysql IN运算符以降序顺序返回值
SELECT usernum FROM usergroup WHERE emailmain IN ('[email protected]', '[email protected]', '[email protected]')
查询工作正常,但不是按输入的顺序输出usernum
值,而是按降序输出它们。这是有问题的,因为我需要它们与电子邮件对齐。我认为这可能与limit
运营商有关,或者使用ORDER BY emailmain
。我试过了,它仍然不起作用,因为假设电子邮件不存在于数据库中,它将不对应于数组中的内存位置。
对我来说最重要的是我知道不在数据库中的电子邮件。
任何帮助,将不胜感激!
为什么你会期望他们以任何顺序,如果你不指定一个?这可能有助于使用“EXPLAIN SELECT ...”语法来决定数据库用于返回数据的索引。如果你没有指定一个 - mysql将使用它所决定的最好的索引来回答你的查询 – 2012-01-05 04:50:40
是的,我不知道我在想什么。它的晚了,我没有想到索引。但是,我仍然遇到它不告诉我哪些电子邮件不在数据库中的问题。 – Trent 2012-01-05 05:03:00
这可能是你的问题 - 你正在像我一样思考 - 哪一个是程序员 - 而不是DBA - 99.9999%的所有电子邮件都不在你的数据库中 - 你需要根据你想要的来思考“集合论” - 一个粗略的猜测是“这个电子邮件列表不在我的数据库中”我的建议是创建一个'说'电子邮件的表,然后做一个左连接并检查NULL。 – 2012-01-05 05:06:41