MySQL UPPER()和LOWER()不使用utf-8字符

时间:2010-11-10 13:47:59

标签: mysql

我有一个搜索功能,我希望它不区分大小写,包括éüò等字符。

因此,在查询数据库之前,我将输入转换为大写。但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Ö'。

1 个答案:

答案 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