【发布时间】:2016-04-15 05:57:35
【问题描述】:
我正在尝试使用 user_id 和 role_id 作为 MySQL 中的输入来显示 manager_id。这是我尝试过的:
SELECT cbm_user.user_id as user_id
IF (cbm_roles.role_id = 3 THEN SELECT cbm_user.manager_id as manager_id, cbm_user.user_id as user_id, cbm_user_role.role_id as role_id from cbm_user left outer join cbm_user_role on cbm_user.user_id = cbm_user_role.user_id, left outer join cbm_roles on cbm_user_role.role_id = cbm_roles.role_id where role_id = 3)
END if;
但我明白了
#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 2 行的 'IF (cbm_roles.role_id = 3 THEN SELECT cbm_user.manager_id as manager_id, cbm_use' 附近使用正确的语法
错误。我应该怎么办?我还想再添加两个条件。我该怎么做?
【问题讨论】:
-
你的 if 条件格式错误,参考文档dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html
-
SELECT cbm_user.user_id as user_id 并且在列出下一个要选择的项目之前需要一个逗号 :)
-
(1) 在错误点处缺少逗号,(2)
SELECT子查询需要用括号括起来。