2015-08-28 60 views
1

嗨我想搜索强大的等于在MySQL表中的字符串。 假设我有以下数据:使用mysql regexp搜索字符串

name  skills 
John  HTML^&*HTML5^&*CSS^&*CSS3 
Roman  HTML^&*CSS 
Anrold CSS^&*CSS3 

这里^&*用于分析的内容。
如何在mysql中执行regexp搜索,以便当我搜索HTML5时,它只返回名称John,但不返回john and roman。我试过使用like,但它没有奏效。

select * from table where skills regexp [HTML] 

但是我也会返回HTML5。但它应该只返回具有HTML的行。

可能有回答说规范化你的表。所以这对我来说不是解决方案,因为上面只是一个例子。由于我的项目处理表单构建器,它可能包含任何其他带有选项的字段。

+0

尝试'SELECT * FROM表,其中技能正则表达式“[[: <:]]HTML[[:>:]]''。或者'select * from table where skill regexp'[[:<:]]HTML5[[:>:]]'' –

+1

也许如果你解释你如何使用“like”,它会给我们提示为什么不是“like”为你工作。因为它应该...... – Amarnasan

+1

@ user254153:或许,如果你想得到相反的结果并获得'Roman'和'Arnold'条目,你需要'SELECT * FROM table WHERE skills NOT LIKE'%HTML5%''。 –

回答

0

你可以简单地实现在MySQL这个使用like操作员

SELECT * FROM `table` WHERE skills LIKE '%HTML5%' 

LIKE相反的版本是NOT LIKE作为

SELECT * FROM `table` WHERE skills NOT LIKE '%HTML5%' 
+0

谢谢。它的工作,但我怎么能不喜欢。我的意思是不等于。 – user254153

+0

@ user254153。我已经更新了我的答案 –