如何快速搜索查询

时间:2011-02-22 15:52:54

标签: coldfusion qoq

我有一个几乎所有东西都是动态的应用程序。我正在为用户创建一个编辑表单,并且基本上需要搜索查询以选择一组复选框。

我有一个表,将用户分配给包含userid和programid的程序,这些程序映射到users表和programs表中的相应记录。最初我抓住一个用户和所有程序,然后循环遍历程序查询以构建复选框。

<cfloop query="Rc.programs">
    <dd><input type="checkbox" name="programs" value="#Rc.programs.id#" /> #Rc.programs.name#</dd>
</cfloop>

我理想的做法是拉出程序成员资格表中的所有记录,并进行某种搜索。我可以查询查询,但我想知道是否有更快的方法来实质上搜索查询。如果这有助于人们理解,我的查询查询将如下所示。

SELECT * FROM Rc.programs WHERE programid = #Rc.programs.id#

1 个答案:

答案 0 :(得分:4)

QoQ当然是最简单的方法,但不要忘记你的CFQUERYPARAM:

SELECT * FROM Rc.programs WHERE programid =
   <cfqueryparam value="#Rc.programs.id#" cfsqltype="WHATEVER_IT_IS">

您还可以将查询的单个列/字段作为数组引用,并使用数组函数搜索该列,包括arrayFind()(可能只是在最近的版本中)。

arrayFind( Rc.programs.programId, YOUR_ID_HERE )

如果速度不够快,你总是可以在内存中构建某种数据结构或索引,并将其保存在应用程序范围变量中(如果合适的话)。

但你的数据库真的那么慢吗?减少页面执行的查询数量几乎总是一件好事,但对于普通的,简单的查询,您可能无法超越数据库服务器的速度,缓存等。

相关问题