2012-02-29 13 views
0

基本的には、2列:- ProductID(int) - somethingのようなもの(varchar)を含む製品(主に衣類)というタイトルのテーブルに新しい列を追加したいと考えています。 | z | (例えば、| 10 | 300 | 5 |は10が女性布、300はTシャツ、5は黄色であることを示している)。特定のインデックスを作成する

私はindexという新しい列を追加して、各製品の特定の場所をWebサイトに割り当てたいとします(たとえば、最初の写真はジーン、2番目の写真はコート、3番目はt-シャツ、etc ...)。私はこのゾーンを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. 

任意の提案を?

+1

テーブルを正規化します。 1つのフィールドに複数の値を格納することによって、無価値な値が追加されることはありません。価値と時間と努力だけが失われた。 [データベースの正規化](http://en.wikipedia.org/wiki/Database_normalization)を参照してください。 –

答えて

0

構文の例:あなたは、インデックスを作成することができます

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

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

私はindexproducts列にどうなるかで、あなたのロジックを理解していないが、なぜ計算列を作成していませんindexproducts列の

関連する問題