当用户登录时,我想检查他所属的角色,并根据它自定义带有角色的select语句,例如:
如果用户具有toyota和ford的角色:sql语句将为:
select * from issues where provider = 'toyota' and provider = 'ford'
使用下拉列表也会填充toyota和ford,因此用户只能查看和修改他允许的行。
我不知道如何实现这个逻辑,请帮助
PS:对不起我的英语,我是法语人士:)。
答案 0 :(得分:0)
提供商可能同时拥有两个不同的值?我不这么认为。
使用"加入表" user_provider。抱歉,伪代码。
Users
UserId 1 Name Paul
UserId 2 Name Carl
UserId 3 Name Volume
Providers
ProviderId 1 Name Toyota
ProviderId 2 Name Honda
ProviderId 3 Name Ford
User_Provider
ProviderId 1 UserId 1
ProviderId 1 UserId 2
ProviderId 2 UserId 3
ProviderId 3 UserId 1
ProviderId 3 UserId 2
select * from issues where providerId in (select ProviderId from user_provider where UserId = 1)
在这种情况下,保罗是我们与丰田和福特的人。
答案 1 :(得分:0)
provider = 'toyota' and provider = 'ford'
将始终为false,因为提供商不能同时为两者。
使用or
代替and
:
select * from issues where provider = 'toyota' or provider = 'ford'