如果字段'a'像'varchar'= true那么concat'varchar,'predefinedstring1'

时间:2012-11-12 15:29:15

标签: mysql if-statement sql-like concat

我有一个产品csv文件,由程序解析以更新Mysql数据库中的产品记录。

该程序具有列映射功能,并且在解析CSV文件时,可以在列中的字段中包含SQL查询。

我想要实现的是根据varchar字段的内容对产品进行细分。

要获得子类别,SQL查询的输出必须是“parentcategory”子类别|子类别',(管道' |'分隔符是要生成的类别树的必需语法)

我已经有了这个查询

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

1 个答案:

答案 0 :(得分:4)

Mysql理解像

这样的东西
SELECT IF(col LIKE '%aValue%', "ValueA", "ElseValue") FROM ...

您不必在IF中使用字符串:

SELECT IF(col LIKE '%aValue%', Col1, Col2) FROM ...