Coldfusion和SQL中的分面搜索?

Sco*_*ott 0 sql coldfusion search

我正在Coldfusion和SQL中进行分面搜索.我试过像这样创建一个查询:

SELECT * FROM Turbos 
WHERE
  PartNumber LIKE '%#trim(SearchCriteria)#%' 
  OR PartDescription LIKE '%#trim(SearchCriteria)#%' 
  AND (PumpingSpeed BETWEEN #minimum# AND #URL.speed#) 
  AND InletFlange LIKE '#URL.inlet#' 
  AND Bearing LIKE '#URL.bearing#' 
  AND Condition LIKE '#URL.condition#'
Run Code Online (Sandbox Code Playgroud)

问题是服务器返回的行不包含我正在提供的每条数据.如何仅选择包含所有条件的行?

Aid*_*ane 5

只需将OR位括在括号中:

(PartNumber LIKE '%#trim(SearchCriteria)#%' OR PartDescription LIKE '%#trim(SearchCriteria)#%') AND...
Run Code Online (Sandbox Code Playgroud)

目前你有A或B和C,它被读作A或(B和C).你想要(A或B)和C.

并确保您按照上面的建议使用cfqueryparam.

  • 通过逐个删除AND子句开始隔离它,看看哪个会丢掉你期望看到的结果.特别是我只是将PartNumber和PartDescription留在那里,以确保它与你期望的部件匹配. (3认同)