0

我正在使用 ColdFusion 开发一个 Flash Builder\Flex Mobile 应用程序。我需要帮助来修复我的搜索功能。当我尝试搜索某些内容时,我必须输入确切的单词,否则它什么也不返回。

在此处输入图像描述

如果我只输入"app",而不是"applet",它什么也不返回。

搜索功能:

<cffunction name="getwordsSummaryByTerm" output="false" access="remote"  returntype="Query" > 
    <cfargument name="searchStr" type="string"  required="true" /> 
    <cfset var qItem=""> 
    <cfquery name="qItem" datasource="databaseyo">
        SELECT * 
       FROM words 
       WHERE term = <CFQUERYPARAM CFSQLTYPE="CF_SQL_VARCHAR" VALUE="#ARGUMENTS.searchStr#"> 
    </cfquery> 
     <cfreturn qItem> 
</cffunction> 

弹性代码:

protected function doSearch(event:MouseEvent):void
{
    if(searchTerm.text!="")
    { 
        getAllwordsResult.token = wordsService.getwordsSummaryByTerm(searchTerm.text); 
    } 
    else
    { 
        getAllwordsResult.token = wordsService.getAllwords(); 
    } 
}
4

1 回答 1

5

尝试更新您的查询,使其搜索 LIKE 值而不是特定的 EQUALS 值。

SELECT * 
FROM words 
WHERE term LIKE <CFQUERYPARAM CFSQLTYPE="CF_SQL_VARCHAR" VALUE="%#ARGUMENTS.searchStr#%">

请注意现在环绕查询参数中的值的“%”。

如果您想设置它以便输入的内容返回以相同方式开头的单词(即输入“app”返回“applet”和“apple”,但不返回“dapple”),那么只需删除第一个“%”参数值。

于 2013-06-30T21:49:32.040 回答