CREATE TABLE `users` (
`id` int(11) AUTO_INCREMENT,
`academicdegree` varchar(255),
`name` varchar(255),
`firstname` varchar(255),
`sex` enum('m','f')
)
SELECT TRIM(CONCAT_WS(" ", firstname, name)) AS fullname FROM users
有没有办法根据一个查询中存储在“sex”字段中的ENUM
值添加有用的称呼(先生或夫人)?
奖金跟踪
我只能替换此部分查询:TRIM(CONCAT_WS(" ", firstname, name))
并且;
不被允许。
答案 0 :(得分:4)
这样可以正常工作:
SELECT TRIM(CONCAT_WS(" ", IF(sex='m', 'Mr.', 'Mrs.'), firstname, name)) AS fullname FROM users
您可以使用CASE
语句,但是如果您只有两个选项,则IF()
语句更有意义。
答案 1 :(得分:3)
SELECT TRIM(CONCAT_WS(" ", CASE sex WHEN 'm' THEN 'Mr.' WHEN 'f' THEN 'Mrs.' ELSE '' END, firstname, name)) AS fullname FROM users
(注意:这与其他答案的不同之处在于它不会假设空sex
暗示'Mrs.'
。虽然我个人不确定即使sex = 'f'
也应该暗示'Mrs.'
,因为这种称呼通常不会用于未婚女性,至少低于某个年龄。)