I'm not sure about the structure of the search table either. But if each location is stored as a separate record, I'd use a simple JOIN and IN (...) clause. It's not clear whether it should be an INNER or OUTER join, but ...
<cfparam name="FORM.Location" default="">
<cfquery....>
SELECT Columns
FROM SearchTableName sr INNER JOIN LocationTableName loc ON
sr.LocationName = loc.LocationName
WHERE ID = ID
.....
<cfif listLen(form.location)>
AND loc.strLocationCode IN
(
<cfqueryparam value="#form.location#" list="true" cfsqltype="(your data type)">
)
</cfif>
If the locations ARE are stored as comma delimited list (less than ideal), then you'd probably have to resort to looping and the old LIKE hack