2015-10-25 41 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

相关问题