3
我正在使用MATCH條件來匹配int字段和varchar字段。根據http://bugs.mysql.com/bug.php?id=22343混合二進制和非二進制列類型時,匹配變爲二進制,因此區分大小寫。在不區分大小寫的情況下使用MySQL MATCH混合列類型
我的問題是我將如何去使搜索不區分大小寫?我嘗試過使用MATCH(lower(a),b)AGAINST('title'),但這不起作用。
這是一個可用作測試的模式。
CREATE TABLE IF NOT EXISTS `foo` (
`a` int(11) NOT NULL,
`b` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `foo` (`a`, `b`) VALUES
(2345345, 'title and volume'),
(145344, 'Volume'),
(1234214, 'Title');
SELECT * FROM `foo` WHERE MATCH (a,b) AGAINST ('title' IN BOOLEAN MODE)
拋出一個語法錯誤。類似於我試圖做LOWER(a) – 2009-08-10 01:15:09
這很刺激。我想你必須分手那個'MATCH'。 – chaos 2009-08-10 01:32:04
我之前看過分手比賽會奏效。在我上面的測試中,它仍然區分大小寫,這是沒有意義的。 – 2009-08-10 03:28:42