我需要在coldfusion中构建一个泛型方法来比较两个查询结果集......任何想法???
答案 0 :(得分:7)
如果您只是想确定两个查询是否完全 ,那么您可以这样做:
if(serializeJSON(query1) eq serializeJSON(query2)) ...
这会将两个查询转换为字符串并比较字符串。
如果你正在寻找更多的细微差别,我相信Sergii的方法(转换为struct,比较键)可能是正确的方法。您可以通过先添加简单检查来“保护”它......列列表是否匹配?记录数量是否相同?这样,如果其中任何一个检查失败,您就知道查询可能不等同,因此返回false是安全的,从而避免了完全比较的性能损失。
答案 1 :(得分:0)
如果我理解正确,你有两个结构相同但数据集不同的结果集(比如选择不同的子句)。
如果这是正确的,我相信更好(更有效)的方法是尝试在数据库级别上解决此任务。也许使用临时/累积表和/或存储过程。
使用CF几乎肯定需要大量的循环,这对于大型数据集来说是不合适的。虽然我为使用中间存储的小数据集做了类似的事情:将一个结果集转换为结构,并通过检查结构键循环第二个查询。