这是我正在使用的代码 -
<CFOUTPUT>
<CFQUERY NAME="getParser" DATASOURCE="LibraryDB" DBTYPE="ODBC">
select name
from parser_acronym
where init = '#source#'
</CFQUERY>
<CFQUERY NAME="getUAcode" DATASOURCE="LibraryDB" DBTYPE="ODBC">
SELECT name FROM useragent
WHERE Logs.csuseragent contains '#%useragent.string%#' </CFQUERY>
</CFQUERY>
<CFSET src = "#getParser.name#">
<CFSET ua = "#getUAcode.name#">
<CFIF (DailyCount MOD 2) EQ 0>
<CFSET via = '<td style="background-color: DBEFB6;">#src#<br><font color="blue">#ua#</font></td>'>
<CFELSE>
<CFSET via = '<td>#src#<br><font color="blue">#ua#</font></td>'>
</CFIF>
</CFOUTPUT>
我使用getParser查询从表中提取数据。这显示为#src# - 这可以正常工作。
现在,我需要添加更多信息,这将显示在#ua#(useragent)字段中。我需要这个查询来理解当我的日志表包含来自useragent表的'string'时,它将显示与csuseragent表中的名称一致的名称。所以我从两个表中提取查询,WHERE必须是'包含'。这甚至可能吗?
以下是我的表格示例 -
使用费表 -
NAME | STRING
IE | MSIE
FFox |火狐
iPad | ipad的
日志表有一个csuseragent是通常的UA字符串,里面填充了大量文本,但在其中有定义的单词,告诉我们用户正在浏览的内容 -
CSUSERAGENT
etcetc_msie
etcetc_firefox
etcetc_ipad
etcetc_msie
etcetc_msie
答案 0 :(得分:1)
跟随我有点麻烦,但我认为这就是你想要的:
<cfquery name="getUACode">
SELECT UA.name AS UA, PA.name AS src
FROM parser_acronym PA
LEFT JOIN Useragent UA ON PA.name LIKE '%' + UA.name + '%'
WHERE PA.init = <cfqueryparam value="#source#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfoutput>
<cfif NOT dailycount MOD 2>
<cfset via = '<td class="myBgColor">#src#<br><span class="blueColor">#ua#</span></td>'>
<cfelse>
<cfset via = '<td>#src#<br><span class="blueColor">#ua#</span></td>'>
</cfif>
</cfoutput>
答案 1 :(得分:0)
以下代码是您答案的开始。由于您没有为getUA查询定义查询,因此我不确定您的标准和变量是什么以及它们来自何处。
一般来说,我不理解变量UA。
<CFQUERY NAME="getParser" DATASOURCE="LibraryDB" DBTYPE="ODBC">
select name
from parser_acronym
where init = <cfqueryparam cfsqltype="cf_sql_varchar" value="#source#">
</CFQUERY>
<CFQUERY NAME="getUAcode" DATASOURCE="LibraryDB" DBTYPE="ODBC">
SELECT name
FROM useragent
WHERE Logs.csuseragent like <cfqueryparam cfsqltype="cf_sql_varchar" value="%#useragent.string#%#">
</CFQUERY>
<CFSET src = "#getParser.name#">
<CFSET ua = "#getUAcode.name#">
<CFOUTPUT>
<CFIF (DailyCount MOD 2) EQ 0>
<CFSET via = '<td style="background-color: DBEFB6;">#src#<br><font color="blue">#ua#</font></td>'>
<CFELSE>
<CFSET via = '<td>#src#<br><font color="blue">#getUacode(ua)#</font></td>'>
</CFIF>
</CFOUTPUT>