2013-11-10 35 views
1

在我的數據庫中,我有10個項目和5個部門。當然,每個項目都分配給其中一個部門。現在,我想簡化項目名稱,以便新名稱是項目名稱的前四個字符,連字符以及部門名稱的前三個字符的組合。此外,新名稱應全部大寫。那麼讓我們假設項目名稱是部門4中的計算機化管理。那麼新的縮寫名稱必須是COMP-ADM 顯然,mysql應該自動爲所有項目名稱執行此操作。因爲如果這10個項目後來增加到100個,我不想爲每個項目輸入100個報表。那麼,有沒有簡單的方法來做到這一點,而不會過分複雜的陳述?Concat&縮寫名稱mysql

+0

看看MySQL [字符串函數](http://dev.mysql.com/doc/refman/5.5/en/string-functions.html) – 2013-11-10 02:49:43

回答

2

我相信你可以做這樣的事情是否要更新列或插入這個新的名字變成另外一個表或者列,你可以得到部門名稱和項目名稱所需要的格式,但這樣做

SELECT UCASE(LEFT(ProjectName, 4)) + '-' + UCASE(LEFT(DepartmentName, 3)) 
FROM Table 
+0

我按照你的建議這樣做了:SELECT UCASE( LEFT(pname,4))+' - '+ UCASE(LEFT(dname,3)) FROM 項目INNER JOIN部門 ON dnumber = dnum b它只會拋出一堆零! – Modaresi

+1

試試'CONCAT(UCASE(LEFT(ProjectName,4)),' - ',UCASE(LEFT(DepartmentName,3)))''。 –

+0

感謝Greg,我把CONCAT(UCASE(LEFT(ProjectName,4))看成是我自己的一部分,但是我的連字符和第二部分有問題,在你的幫助下,我能夠做到。 – Modaresi

1
SELECT UCASE(CONCAT(LEFT(pname, 4))) AS NEW, '-', UCASE(CONCAT(LEFT(dname, 3))) AS NAME 
FROM 
project INNER JOIN department 
ON dnumber=dnum