像声明不返回全文

时间:2018-08-09 23:54:33

标签: mysql

我正在从中文本列(数据)中运行类似的语句,试图提取某些数据并替换为文本;

 Select
 CASE  WHEN data like '%CPCCCA2002B - Use carpentry tools and equipment:["Workplace Based Training With Employer"]%' THEN 'Workplace' else 0 end as Option

  FROM formz.user z

但是似乎查询将不会查找“设备”之后的任何内容 我非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果上面给出的是您的真实示例数据,则将backtick放在别名下,然后将其考虑为keyword

CREATE TABLE testing(content VARCHAR(1000))

INSERT INTO testing VALUES 
('Another things CPCCCA2002B - Use carpentry tools and equipment:["Workplace Based Training With Employer"]testing')

SELECT
 CASE WHEN content 
    LIKE '%CPCCCA2002B - Use carpentry tools and equipment:["Workplace Based Training With Employer"]%' 
THEN 'Workplace' ELSE 0 END AS `Option`
FROM testing z

如果由于[而出现问题,请在其之前使用任何特殊字符,例如*[,然后使用以下语法

CASE WHEN content LIKE 'sfsdf*[dsfad' ESCAPE '*' THEN 'Workplace' ELSE '' END

注意:在我尝试过的过程中,我没有发现第二个问题,但是如果这是问题所在,那么您可以使用上面的语法来消除该问题,但是请使用从未出现在实际内容中的字符。

输出:

Option
---------
Workplace