如何运行if语句

时间:2017-07-18 06:47:15

标签: mysql sql

我的MySQL数据库中有一个表,有电话和名字 喜欢:

  • phone1,name1
  • phone2,name2

等...

我正在列出名字,但我想在结果中用手机替换一个名为null的名称

喜欢IF(name IS NULL){SELECT phone AS name}else{SELECT name} FROM users

并获得:

  • NAME1
  • name2
  • phone3
  • NAME4

有没有办法做到这一点?

4 个答案:

答案 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;