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

时间:2013-03-11 20:59:49

标签: mysql

我有一个问题,在列中找到精确字符串匹配的最佳方法是什么。

我尝试使用locate('needle', 'haystack') > 0.这个问题是,例如,如果我试图找到的字符串类似于'Ed',但是在blob或text列中,我有一个字符串表示'我住',locate()会返回6.然而,这不是我要求的。在完全匹配中,最好使用LIKE '',但是,LIKE存在性能问题,因此,它不是一个可行的解决方案。

我是否可以使用LOCATE()进行完全匹配?

1 个答案:

答案 0 :(得分:3)

您可以使用:

WHERE CONCAT(' ', column, ' ') LIKE BINARY '% string_to_find %'

或使用LOCATE:

WHERE LOCATE(BINARY ' Ed ', CONCAT(' ', column, ' '))

使用BINARY将强制进行精确的大小写匹配。我认为LOCATE或LIKE的表现非常相似。请参阅小提琴here