2015-10-25 40 views
3

我想爲一列的所有結果添加一個常量字符串。這裏是我的表:在MySQL中CONCAT()有沒有其他選擇?

// mytable 

id | name 
----|-------- 
1 | jack 
2 | peter 
3 | ali 

我想這樣的輸出:

select name from mytable order by id; 

Your name: jack 
Your name: peter 
Your name: ali 

正如你看到的,我結合這個字符串name列的所有結果:Your name:。我可以這樣做:

... CONCAT('Your name: ', name) ... 

現在我想知道,有沒有其他方法? (類似於通過MySQL中的+合併)

+0

什麼是錯的使用'因爲concat'功能'+'是mysql中的算術運算符? –

+0

@AbhikChakraborty我認爲使用類似'concat()'的函數不是很快*(未優化)* – stack

+1

這不是一個錯誤的假設,'concat()'函數只是串聯字符串,它與查詢速度無關。 –

回答

2

CONCAT是執行字符串連接的默認方式。 +是arithemtic操作,當你嘗試:

SELECT 'a' + 'b' -- you will get 0, because of implicit cast to number 

還有CONCAT_WS()

SELECT CONCAT_WS(SPACE(1), 'Your name:','Bob') AS result 

SqlFiddleDemo

+1

我明白了,謝謝。 +1 – stack

+1

@stack如果您需要'INITCAP',您可以使用:http://sqlfiddle.com/#!9/247263/2/0 – lad2025

相關問題