根据http://dev.mysql.com/doc/refman/5.1/en/regexp.html,“REGEXP不区分大小写,除非与二进制字符串一起使用”。那么......我不使用二进制字符串 - 至少,因为我理解他们(以及他们在他们的例子中暗示)。然而...我读过'rlike'在MySQL中不区分大小写 - 但它不适合我
mysql> select hostname from hosts where hostname regexp '17503a';
+-----------------------+
| hostname |
+-----------------------+
| ccdn-ats-tk-17503a-01 |
| ccdn-ats-tk-17503a-02 |
+-----------------------+
2 rows in set (0.08 sec)
mysql> select hostname from hosts where hostname regexp '17503A';
+-------------------+
| hostname |
+-------------------+
| ccdn-ss-17503A-01 |
| ccdn-ss-17503A-02 |
| ccdn-ss-17503A-03 |
| ccdn-ss-17503A-04 |
+-------------------+
4 rows in set (0.08 sec)
这看起来很像一个大小写敏感的搜索给我。任何帮助?
按照要求,这里的(略)模式:
CREATE TABLE `hosts` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`hostname` varchar(60) COLLATE utf8_bin DEFAULT NULL,
`status` enum('active','decommissioned','offlined','deploy','down') COLLATE utf8_bin DEFAULT 'deploy',
`onteak` int(10) DEFAULT NULL,
`nagios` enum('monitored','unmonitored') COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `serial_num` (`serial_num`),
UNIQUE KEY `ip` (`ip`),
UNIQUE KEY `hostname` (`hostname`),
KEY `fk_loc` (`loc`),
KEY `hostname_idx` (`hostname`)
) ENGINE=MyISAM AUTO_INCREMENT=43075 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
而且我要出去的肢体和猜测,整个“整理= utf8_bin”是什么咬我。谢谢!
更新:spencer7593钉一个变通办法 - 很兴奋:
mysql> SELECT hostname FROM hosts WHERE hostname REGEXP '17503a' COLLATE utf8_general_ci ;
+-----------------------+
| hostname |
+-----------------------+
| ccdn-ats-tk-17503a-01 |
| ccdn-ats-tk-17503a-02 |
| ccdn-ss-17503A-01 |
| ccdn-ss-17503A-02 |
| ccdn-ss-17503A-03 |
| ccdn-ss-17503A-04 |
+-----------------------+
6 rows in set (0.03 sec)
排序规则可能区分大小写,做一个SHOW CREATE TABLE hosts并检查整理 – Mihai
请寄出'hosts'表的模式 –