我有以下SQL代码可以在小数据集上正常工作。我有一个朋友告诉我,我应该考虑把这个放在MySQL的FOR循环中,使用SELECT DISTINCT c.name
作为循环条件。如何在mysql的for循环中使用select查询?
SELECT c.name, c.limit, c.price, c._low, c._high, c.date
FROM comp c
WHERE c.e_id IN
(SELECT e_id FROM part_e WHERE core_id=23)
OR c.pn IN
(SELECT pn FROM part_ct WHERE core_id=23)
GROUP BY c.name
ORDER BY c.date DESC, c.name ASC
LIMIT 0,200
作为一名新的SQL程序员,我正在查找如何在MySQL中执行循环。虽然它在概念上看起来很简单,但我很难想出如何实际设计SQL语句来实现循环中的实际运行。
我的朋友告诉我,你应该使用循环的原因是在处理极大数据集或处理非常大的查询请求时,对SQL数据集使用'post'操作符可能会对性能产生负面影响。
这对我来说很有意义,所以我在寻求帮助理解如何做到这一点,以及更多关于为什么子查询被认为是不好的做法的信息。
感谢您的帮助!
By for循环,我的意思是利用MySQL处理大型数据库的能力在内部取消数据,而不是返回巨大的结果集。 (http://dev.mysql.com/doc/refman/5.0/en/loop-statement.html)此外,我必须按c.name进行分组,因为有些内容位于part_ct表中,而其他内容位于part_e表中,它们没有任何共同之处。 –