[英]MySQL SELECT statement with COLLATE and MATCH
有什么方法可以在同一查詢字符串中指定COLLATE
和MATCH() AGAINST()
。 我正在努力做到這一點。
SELECT * FROM table WHERE COLLATE latin1_general_cs MATCH(column) AGAINST('string')
我知道這行不通,只是一個例子。 如果COLLATE
與MATCH
不兼容。 如何在每個查詢中指定區分大小寫,因為我需要區分大小寫和不區分大小寫的MATCH() AGAINST()
查詢。
不,很不幸
盡管支持在單個表中使用多個字符集,但FULLTEXT索引中的所有列都必須使用相同的字符集和排序規則。
全文MATCH() AGAINST
語法上沒有修飾符可指定排序規則。
http://dev.mysql.com/doc/refman/5.0/en/fulltext-restrictions.html
您可以使用不同的排序規則維護column
列的副本。
我想出了怎么做。 就像@Ollie Jones所說的那樣,我將所有數據復制到一個新的列中,並區分大小寫。 在我的情況下latin1_general_cs
。
但是因為FULLTEXT
索引不能具有混合排序規則。 必須有2個FULLTEXT
索引。 一個不區分大小寫的列( latin1_general_ci
),另一個不區分大小寫的列( latin1_general_cs
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.