我使用匹配条件来匹配int字段和varchar字段。根据http://bugs.mysql.com/bug.php?id=22343的说法,当混合binary和非binary列类型时,匹配变为binary,因此区分大小写。
我的问题是如何让搜索不区分大小写?我试过对('title')使用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)
发布于 2009-08-10 01:08:10
我想你必须这样做:
SELECT *
FROM `foo`
WHERE MATCH(`a`) AGAINST ('title' IN BOOLEAN MODE)
OR MATCH(`b`) AGAINST ('title' IN BOOLEAN MODE)
https://stackoverflow.com/questions/1252750
复制相似问题