1

有没有办法在同一个查询字符串中指定COLLATE和。MATCH() AGAINST()我试图得到这个。

SELECT * FROM table  WHERE COLLATE latin1_general_cs MATCH(column) AGAINST('string')

我知道这行不通,只是一个例子。如果COLLATE剂量不适用于MATCH. 如何在每个查询中指定区分大小写,因为我需要区分大小写和不区分大小写的MATCH() AGAINST()查询。

4

2 回答 2

0

我想出了如何做到这一点。就像@Ollie Jones 说的那样,我将所有数据复制到一个新列中,并带有区分大小写的排序规则。就我而言latin1_general_cs

但是因为FULLTEXT索引不能有混合排序规则。必须有 2 个FULLTEXT索引。一个在不区分大小写的列 ( latin1_general_ci) 上,一个在区分大小写的列 ( latin1_general_cs) 上。

于 2013-01-02T19:27:12.897 回答
0

不,不幸的是

尽管支持在单个表中使用多个字符集,但 FULLTEXT 索引中的所有列必须使用相同的字符集和排序规则。

全文MATCH() AGAINST语法上没有用于指定排序规则的修饰符。

http://dev.mysql.com/doc/refman/5.0/en/fulltext-restrictions.html

column您可以使用不同的排序规则维护该列的副本。

于 2013-01-02T15:28:04.483 回答