我有一个搜索功能,我希望它不区分大小写,包括éüò等字符。
因此,在查询数据库之前,我将输入转换为大写。但MySQL没有正确转换重音字符。
SELECT * FROM items WHERE UPPER(description) = $input
我有MySQL 5.1.32,我尝试了不同的排序规则,但似乎都没有正常工作。与LOWER()相同。
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`description` text CHARACTER SET utf8 COLLATE utf8_bin,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=187 DEFAULT CHARSET=utf8"
描述字段包含'hellö'。 Mysql将其转换为'HELLö'。我想'HELLÖ'。
答案 0 :(得分:1)
这对我有用:
CREATE TABLE items (id INT NOT NULL, name VARCHAR(100) COLLATE UTF8_GENERAL_CI) ENGINE=InnoDB;
INSERT
INTO items
VALUES (1, 'Eyjafjallajökull');
SELECT *
FROM items
WHERE name = 'EYJAFJALLAJOKULL';
--
1 Eyjafjallajökull
SELECT UPPER('Eyjafjallajökull')
FROM items;
--
EYJAFJALLAJÖKULL