使用MySQL MATCH在非区分大小写的情况下混合列类型

时间:2009-08-10 01:03:29

标签: mysql

我正在使用MATCH条件来匹配int字段和varchar字段。根据{{​​3}}混合二进制和非二进制列类型时,匹配变为二进制,因此区分大小写。

我的问题是如何才能使搜索不区分大小写?我尝试过使用MATCH(低级(a),b)反对('标题'),但这不起作用。

这是一个可以用作测试的模式。

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)

1 个答案:

答案 0 :(得分:2)

我想你必须这样做:

SELECT *
FROM `foo`
WHERE MATCH(`a`) AGAINST ('title' IN BOOLEAN MODE)
OR MATCH(`b`) AGAINST ('title' IN BOOLEAN MODE)