有没有办法在同一个查询字符串中指定COLLATE
和。MATCH() AGAINST()
我试图得到这个。
SELECT * FROM table WHERE COLLATE latin1_general_cs MATCH(column) AGAINST('string')
我知道这行不通,只是一个例子。如果COLLATE
剂量不适用于MATCH
. 如何在每个查询中指定区分大小写,因为我需要区分大小写和不区分大小写的MATCH() AGAINST()
查询。
有没有办法在同一个查询字符串中指定COLLATE
和。MATCH() AGAINST()
我试图得到这个。
SELECT * FROM table WHERE COLLATE latin1_general_cs MATCH(column) AGAINST('string')
我知道这行不通,只是一个例子。如果COLLATE
剂量不适用于MATCH
. 如何在每个查询中指定区分大小写,因为我需要区分大小写和不区分大小写的MATCH() AGAINST()
查询。
我想出了如何做到这一点。就像@Ollie Jones 说的那样,我将所有数据复制到一个新列中,并带有区分大小写的排序规则。就我而言latin1_general_cs
。
但是因为FULLTEXT
索引不能有混合排序规则。必须有 2 个FULLTEXT
索引。一个在不区分大小写的列 ( latin1_general_ci
) 上,一个在区分大小写的列 ( latin1_general_cs
) 上。
不,不幸的是
尽管支持在单个表中使用多个字符集,但 FULLTEXT 索引中的所有列必须使用相同的字符集和排序规则。
全文MATCH() AGAINST
语法上没有用于指定排序规则的修饰符。
http://dev.mysql.com/doc/refman/5.0/en/fulltext-restrictions.html
column
您可以使用不同的排序规则维护该列的副本。