2

Mysqlデータベースの製品レコードを更新するプログラムによって解析される製品csvファイルがあります。

このプログラムには、列マッピング機能と、CSVファイルの解析時に列のフィールドにSQLクエリを含める機能があります。

私が達成しようとしているのは、varcharフィールドの内容に基づいて製品をサブカテゴリー化することです。

サブカテゴリを実現するには、SQLクエリからの出力は'parentcategory|である必要があります。サブカテゴリ| subcategory'、(パイプ' |'区切り文字は、生成されるカテゴリツリーに必要な構文です)

そして私はこのクエリを実行しています

concat('default category','|',[CSV_COL(13)])

これにより、'デフォルトカテゴリ|の出力が得られます。「列13の文字列」は機能していますが、デフォルトのカテゴリの下にサブカテゴリが多すぎます。サイトのナビゲーションを使用可能にするには、親カテゴリが必要です。

私がしたいのは、次のようなクエリを実行することです

IF([csv_col(12)] like '*Battery*' = TRUE)  
THEN CONCAT('default category','|','batteries','|',[CSV_COL(13)])
ELSE
if([csv_col(12)] like '*power supply*' = TRUE) 
then concat('default category','|''Power Supplies','|',[CSV_COL(13)])
ELSE etc.......

ENDIF
4

1 に答える 1

4

Mysqlは次のようなものを理解しています

SELECT IF(col LIKE '%aValue%', "ValueA", "ElseValue") FROM ...

IF で文字列を使用する必要はありません。

SELECT IF(col LIKE '%aValue%', Col1, Col2) FROM ...
于 2013-04-27T16:08:18.877 に答える