创建特定索引

时间:2012-02-29 11:06:39

标签: sql

基本上我想在名为product(主要是衣服)的表中添加一个新列,其中包含2列: - ProductID(int) - path(varchar),类似于| x | y | z | (例如| 10 | 300 | 5 |含10表示该产品为女性布料,300件T恤,5件黄色)。

所以我想添加一个名为index的新列,以便在我的网站中为每个产品分配一个特定的位置(例如,第一张图片将是牛仔裤,第二张是外套,第3张是T恤等等......)我有8个区域,可以将这个区域扩展到8个区域,依此类推。

我正在尝试编写像这样的SQL更新函数:

UPDATE productsTable 
SET indexproducts = 
SELECT CASE  path WHEN path LIKE %|1 for example|%  
THEN my index (this index should indicate that the product can be included in the first zone or the 9th zone etc... of my website)
ELSE WHEN path LIKE %|200 for example|%  
THEN my index ( for the second zone) ELSE etc?... 
END 
FROM  productsTable.

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

语法示例:

update  YourTable
set     idx =
        case
        when path like '%least travelled%' then 1
        when path like '%highway%' then 2
        else 3
        end

答案 1 :(得分:0)

我不了解你对indexproducts列中的内容的逻辑,但为什么不创建一个计算列:

alter table productsTable add indexproducts as 
    case path 
        when '1' then 'include on the first zone'
        when '200' then 'second zone'
        else '...' 
    end

然后你可以在indexproducts列上创建一个索引