繁体   English   中英

如何在mysql列中找到确切的字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM