我有一个问题,什么是在一列中查找确切的字符串匹配的最佳方式。如何在一个mysql列中查找确切的字符串
我试过使用locate('needle', 'haystack') > 0.
这个问题是,例如,如果我试图找到的字符串是'Ed',但是在blob或文本列中,我有一个字符串'I live' ,locate()会返回6.但是,这不是我所要求的。完全匹配时,最好使用LIKE ''
,但LIKE存在性能问题,因此它不是一个可行的解决方案。
有没有一种方法我使用LOCATE()
做一个完全匹配?
我有一个问题,什么是在一列中查找确切的字符串匹配的最佳方式。如何在一个mysql列中查找确切的字符串
我试过使用locate('needle', 'haystack') > 0.
这个问题是,例如,如果我试图找到的字符串是'Ed',但是在blob或文本列中,我有一个字符串'I live' ,locate()会返回6.但是,这不是我所要求的。完全匹配时,最好使用LIKE ''
,但LIKE存在性能问题,因此它不是一个可行的解决方案。
有没有一种方法我使用LOCATE()
做一个完全匹配?
你说LIKE有性能问题,但是你不打算通过使用一个完全像LIKE那样的函数来解决性能问题。 – 2013-03-11 21:08:29
您使用'LIKE'时遇到了哪些性能问题,而您没有使用'LOCATE'?这两种方法都会混淆任何索引,所以它们应该表现相当 - [并且基于这个答案,'LIKE'略微超出了'LOCATE'](http://stackoverflow.com/a/7500150/643591)。 – 2013-03-11 21:08:52