我的MySQL数据库中有一个表,有电话和名字 喜欢:
等...
我正在列出名字,但我想在结果中用手机替换一个名为null的名称
喜欢IF(name IS NULL){SELECT phone AS name}else{SELECT name} FROM users
并获得:
有没有办法做到这一点?
答案 0 :(得分:4)
你可以这样做:
SELECT id,
IF(name IS NULL, phone, name) as name
FROM report
在这里您可以找到更多信息
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html
答案 1 :(得分:3)
coalesce
函数似乎是实现此目的的简单方法:
SELECT COALESCE(name, phone) FROM users
答案 2 :(得分:1)
除COALESE函数或更复杂的IF语句外,您还可以使用CASE
语句:
SELECT CASE WHEN name IS NULL THEN phone ELSE name END AS name_or_phone
如果你涉及多个表,请加入它们,并在CASE中引用它们:
SELECT CASE WHEN users.name IS NULL THEN phones.phone ELSE users.name END AS name_or_phone
FROM users
LEFT JOIN phones on phones.user_id = users.user_id
请参阅MySQL文档上的Case statements。
答案 3 :(得分:1)
试试这个:
IF (SELECT name FROM tbl_your WHERE name IS NULL) SELECT phone AS name
ELSE SELECT name;