[英]How to find an exact string within a mysql column
我有一个问题,在列中找到精确字符串匹配的最佳方法是什么。
我尝试使用locate('needle', 'haystack') > 0.
问题是,例如,如果我试图找到的字符串类似于'Ed',但是在blob或文本列中,我有一个字符串,上面写着'我活着',locate()会返回6.但是,这不是我要问的。 在完全匹配中,最好使用LIKE ''
,但LIKE有它的性能问题,因此,它不是一个可行的解决方案。
我有没有办法使用LOCATE()
来完全匹配?
你可以用这个:
WHERE CONCAT(' ', column, ' ') LIKE BINARY '% string_to_find %'
或使用LOCATE:
WHERE LOCATE(BINARY ' Ed ', CONCAT(' ', column, ' '))
使用BINARY将强制进行精确的大小写匹配。 我认为LOCATE或LIKE的表现非常相似。 请看这里的小提琴。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.