2012-09-21 95 views
1

我有一张表,其中一列名为Description,其中有各种信息挤在一起。部分信息是汽车制造商的缩写。例如,说明栏可能会显示"6cylM.Benz32zy,.026L"MySQL - 根据另一个字段的一部分填充一个字段

我想用梅赛德斯奔驰填充新的车辆列,无论Description列包含M.Benz里面的某处。关键词有“某处”;缩写的车辆名称可以在描述字段中的任何地方。

到目前为止,我有以下代码。但是,MySQL告诉我它找不到%M.Benz%列。我不想查找名为%M.Benz%的列,我试图找到%M.Benz%的TEXT。

UPDATE tbl_arcore_repuestos 
    SET Vehicle = `Mercedes Benz` 
WHERE Description LIKE `%M.Benz%`; 

任何想法? StackOverflow上类似问题的大多数其他解决方案都依赖于寻找的文本处于固定位置(如字符串的开头或由一致字符分隔)。我正在寻找的文本可能在Description列的任何地方。

回答

2

你错过了引号还是使用了反引号而不是引号?

UPDATE tbl_arcore_repuestos SET Vehicle = 'Mercedes Benz' WHERE Description LIKE '%M.Benz%'; 
+0

我觉得他用反引号这SO使得'Merceds Benz'不是“奔驰” – gtgaxiola

+0

我使用反引号。我认为这是在MySQL中引用文本的首选字符。没有?我应该使用常规单/双引号吗? – user1687658

+0

@ user1687658您应该使用常规引号。反引号用于引用具有特殊字符或mysql保留字的列/表名。 – xdazz

相关问题