我有以下SQL代码,可以在小数据集上正常工作。我有一个朋友告诉我,我应该考虑使用SELECT DISTINCT c.name
作为循环条件将其放入MySQL的FOR循环中。
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'操作符会对性能产生负面影响。
这对我来说很有意义,所以我正在寻求一些帮助来理解如何做到这一点,以及有关为什么子查询被认为是不良做法的更多信息。
感谢大家的帮助!
答案 0 :(得分:0)
你能用“for”和“loop”来解释你的意思
在SQL中,您可以使用Select字符串获取大量数据,您必须在代码中使用这些数据(php,c,java ...),然后从一行到另一行oder数据集到数据集,直到它为止完成
表现提示:SQL Joins Vs SQL Subqueries (Performance)?
提示:您应该按c.e_id进行分组(以数字分组的速度更快)