簡體   English   中英

帶有COLLATE和MATCH的MySQL SELECT語句

[英]MySQL SELECT statement with COLLATE and MATCH

有什么方法可以在同一查詢字符串中指定COLLATEMATCH() AGAINST() 我正在努力做到這一點。

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

我知道這行不通,只是一個例子。 如果COLLATEMATCH不兼容。 如何在每個查詢中指定區分大小寫,因為我需要區分大小寫和不區分大小寫的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM