替换多个mysql数据库列中的字符

时间:2016-05-05 22:18:31

标签: mysql

您好我是mySQL的新手,我在使用关键字尝试从数据库中提取数据时遇到问题。我有2列(标签和类别)。我在查询中使用LIKE'%keyword%'之前已经这样做了。问题是在我现在使用的db中,每个关键字都用';'分隔我想知道是否可以通过用空格替换分号来以某种方式分隔每个关键字?或者,如果更容易使用相同的查询,而不是使用'%'来分隔我使用分号?对不起,如果它是一个新手问题,但我正在努力与此,真的需要一些帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用REPLACE函数替换空格(或任何其他)的分号:

UPDATE MyTable SET tags = REPLACE(tags,';',' '), categories = REPLACE(categories,';',' ')

答案 1 :(得分:0)

  

问题出现在我正在使用的db中,现在每个关键字都是用   一个 ';'我想知道是否有可能以某种方式将每个分开   通过用空格替换分号来设置关键字?或者如果它更容易   使用相同的查询,而不是使用'%'分开我使用   分号?

示例表:

CREATE TABLE `test` (  
  `tags` varchar(255) NOT NULL,
  `categories`  varchar(255) NOT NULL  
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

示例数据:

insert into `test` values ('tag', 'cat' );
insert into `test` values ('tag', 'cat1;cat2;cat3;' );

示例选择:

select * from `test` where `categories` LIKE '%cat1;%';
+------+-----------------+
| tags | categories      |
+------+-----------------+
| tag  | cat1;cat2;cat3; |
+------+-----------------+
1 row in set (0.00 sec)