2014-09-10 2 views
1

Есть ли способ для select col1 if col2 is emptyelse use col2? col1 никогда не будет пустым.mysql select statement вернуть колонку, если столбец пуст

$sql = 'select 
     ug.permissions, 
     g.name, 
     g.display, 
     g.permissions 
     from system.users_groups as ug 
     inner join system.groups as g on ug.group_id = g.id 
     where ug.user_id = ' . $_SESSION['user_id']; 

Вышеприведенный оператор возвращает оба столбца разрешений, я хотел бы вернуть только один столбец разрешений.

if ug.permissions = '' then use g.permissions

ответ

3

Использование COALESCE и NULLIF:

$sql = 'select 
     COALESCE(NULLIF(ug.permissions,''),g.permissions) as permissions , 
     g.name, 
     g.display 
     from system.users_groups as ug 
     inner join system.groups as g on ug.group_id = g.id 
     where ug.user_id = ' . $_SESSION['user_id']; 

Использование СЛУЧАЙ:

$sql = 'select 
     CASE WHEN ug.permissions = '' OR ug.permissions IS NULL 
     THEN 
      g.permissions 
     ELSE 
      ug.permissions 
     END as permissions , 
     g.name, 
     g.display 
     from system.users_groups as ug 
     inner join system.groups as g on ug.group_id = g.id 
     where ug.user_id = ' . $_SESSION['user_id']; 
+0

Я использовал версию СЛУЧАЙ – K3NN3TH

Смежные вопросы