2009-12-29 52 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