用于比较输入与数据库的多值匹配?

时间:2011-12-22 17:45:53

标签: jquery coldfusion

我们正在开发内部库存系统。当用户从供应商订购商品并输入订单信息时,我希望brandmodelSKU等用户输入为自由格式输入,然后在提交时,它将所有这些值与库存数据库中已有的项目进行比较。首先它会比较SKU如果找到它然后直接匹配。如果没有,则继续比较modelbrand,并要求用户确认它们是相同的项目。

有没有人对完成此操作的最佳方法有任何想法?我甚至无法想到这会被称为google它。 代码示例/资源将不胜感激!

1 个答案:

答案 0 :(得分:2)

假设您的表单字段名为“orderInfo”,其值为“12345 Acme Gadget”(其中12345是有效的SKU)

<cfquery name="checkSKU" datasource="inventoryDSN">
SELECT 
 * 
FROM 
 Inventory 
WHERE 
 cast(SKU as varchar) IN (<cfqueryparam value="#ListChangeDelims(form.orderInfo, ' ', ',')#" list="true" cfsqltype="cf_sql_varchar">)
</cfquery>

<cfif checkSKU.recordCount>
  <!--- We have a match! --->
<cfelse>

<cfquery name="checkOthers" datasource="inventoryDSN">
SELECT 
 inventory.*
FROM 
 Inventory 
WHERE 
 1=0
 <cfloop list="#form.orderInfo#" delimiters=" " index="searchTerm">
OR brand LIKE <cfqueryparam value="%#searchTerm#%" cfsqltype="cf_sql_varchar">
OR model LIKE <cfqueryparam value="%#searchTerm#%" cfsqltype="cf_sql_varchar">
</cfloop>
</cfquery>

<cfif checkOthers.recordCount IS 1>
  <!--- have a solid match --->
<cfelseif checkOthers.recordCount GT 1>
  <!--- have some ambiguity, present user with choice among returned results --->
<cfelse>
  <!--- No match found, return error message --->
</cfif>