我的网站上有一个搜索工具,它使用 freetexttable 上的 RANK 字段对匹配项进行排名。我一直将 KEY 字段加入到我的产品 ID 中,这两个整数都没有问题。但是,我必须将我的产品 ID 转换为 varchar 才能开始使用字母数字值。无论我做什么,我都无法再让 KEY 字段与产品 ID 字段匹配。这就是我到目前为止所拥有的。
USE [database]
SELECT distinct ft.id, ft.title, ft.was, ft.[desc] AS
productdescription, ft.price, ft.sortcost, ft.hidden, ft.discount, ft_IDX.RANK, ft_IDX.[KEY]
FROM dbo.products as ft
left JOIN FREETEXTTABLE(products, [desc],'bomber',50) ft_IDX ON CAST(ft.id AS VARCHAR(10)) = CAST(ft_IDX.[KEY] AS VARCHAR(10))
INNER JOIN [database].[dbo].[product_channel] ON [database].[dbo].[product_channel].[productid] = ft.id
WHERE (ft.hidden = 0) and (ft.superhide = 0)
当我也开始使用字母数字产品 IDS 时,KEY 字段是否也会开始使用字母数字?如果不是,那么这个练习可能毫无意义,因为我的搜索将永远不会返回带有字母数字 ID 的产品。