【发布时间】:2012-12-13 10:06:55
【问题描述】:
我的客户坚持按字符串的任何部分搜索多个列。所以我正在尝试这样做:
... MATCH(smth, smth2) AGAINST('*string*' IN BOOLEAN MODE)
索引或快速搜索不是必需的,因此即使 MATCH.. AGAINST 不使用索引 - 也可以。但问题是前缀通配符不起作用 - 只有单词后面的那个才起作用:
*string* - will match the same as string* and *string does not match anything
有没有办法用 MYSQL 解决这个问题?我真的不打算安装任何索引服务或类似的东西,所以必须执行缓慢的查询。
我可以尝试以某种方式在多个列上使用 LIKE,但我想这会更慢。
【问题讨论】:
-
我认为你可以使用 REGEXP 来解决这个问题..!
-
我可以使用正则表达式或简单的 LIKE,但是如何使用 MATCH...AGAINST 等简单语法将其应用于多个列?