Mysql 如果字段“a”类似于“varchar”=true,则concat“varchar”,predeterminedstring1

Mysql 如果字段“a”类似于“varchar”=true,则concat“varchar”,predeterminedstring1,mysql,if-statement,sql-like,concat,Mysql,If Statement,Sql Like,Concat,我有一个产品csv文件,它被一个程序解析以更新Mysql数据库中的产品记录 该程序具有列映射功能,并且可以在解析CSV文件时在列中的字段上包含SQL查询 我试图实现的是根据varchar字段的内容对产品进行子分类 要获取子类别,SQL查询的输出必须是“parentcategory | subcategory | subcategory”,管道“|”分隔符是生成类别树所需的语法 我有这个问题 concat('default category','|',[CSV_COL(13)]) 这给了我一个“

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

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

我试图实现的是根据varchar字段的内容对产品进行子分类

要获取子类别,SQL查询的输出必须是“parentcategory | subcategory | 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

Mysql理解如下内容

SELECT IF(col LIKE '%aValue%', "ValueA", "ElseValue") FROM ...
您不必在IF中使用字符串:

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

Mysql理解如下内容

SELECT IF(col LIKE '%aValue%', "ValueA", "ElseValue") FROM ...
您不必在IF中使用字符串:

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

等等,在RDBMS中,您没有将分层数据存储为非关系、非规范化、分隔的字符串,是吗?您在这里做什么?MySQL不像Postgres那样具有数组数据类型。如果你真的想使用这种结构,也许你在错误的平台上。等等,你没有在RDBMS中以非关系、非规范化、分隔字符串的形式存储层次数据,是吗?你在这里做什么?MySQL不像Postgres那样具有数组数据类型。如果你真的想使用这种结构,也许你在错误的平台上。