2009-12-29 56 views
0

我有这个表:MySQL的ucfirst不起作用

CREATE TABLE IF NOT EXISTS `events` (
    `evt_id` int(11) NOT NULL AUTO_INCREMENT, 
    `evt_name` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT 'ucfirst', 
    `evt_description` varchar(100) DEFAULT NULL, 
    `evt_startdate` date NOT NULL, 
    `evt_enddate` date DEFAULT NULL, 
    `evt_starttime` time DEFAULT NULL, 
    `evt_endtime` time DEFAULT NULL, 
    `evt_amtpersons` int(11) DEFAULT NULL, 
    `sts_id` int(11) NOT NULL, 
    `adr_id` int(11) DEFAULT NULL, 
    `evt_amtPersonsSubs` tinyint(4) NOT NULL DEFAULT '0', 
    `evt_photo` varchar(50) DEFAULT NULL, 
    `sys-mut-dt` timestamp NULL DEFAULT CURRENT_TIMESTAMP, 
    `sys-mut-user` varchar(20) DEFAULT NULL, 
    `sys-mut-id` int(11) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`evt_id`), 
    KEY `sts_id` (`sts_id`), 
    KEY `adr_id` (`adr_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ; 

但是,当我在数据添加到evt_name我的第一个字符是不是大写。有任何想法吗?

更多信息: MySQL客户端版本:5.1.37

我想这样做在数据库中,这样我就不必做ucfirst用PHP始终。

+0

我总是在PHP中使用'formatting'函数。如果您将来需要在不同的应用程序中重用数据,它会使生活更轻松。 – BenTheDesigner 2009-12-29 15:21:54

回答

3

...什么?

如果我正在阅读此权限,它会将缺省值evt_name设置为字符串ucfirst。尝试插入一个空白行,看看我是否正确阅读。

如果您真的反对在PHP中使用ucfirst,那么您在每次查询时可能仍需要调用ucfirst。或者您只能在屏幕上使用ucfirst,而不能在数据库中使用。

+0

好的我以为我只是可以在表格本身中进行拼写而不用在每个查询中进行。 – sanders 2009-12-29 15:19:01

2

ucfirst是一个函数...您将其定义为单元格的默认值。像这样使用它:

INSERT INTO events SET evt_name = UCFIRST($value) 
+2

'UCFIRST'不是标准的mysql函数。 – Lode 2014-10-15 13:45:29

+0

如果您想以标准方式执行此操作,请使用: 'INSERT INTO'events' SET 'evt_name' = CONCAT(UPPER(LEFT('$ value',1)),LOWER(SUBSTRING('$值',2)))''' – smhg 2015-02-24 19:15:32