我正在开展一个项目,在该项目中,用户对记录的访问受到基于用户的用户组的限制。我创建了一个全局变量 $usr_sec_group,并且我想在几个应用程序的 SELECT 语句中的 WHERE 子句中添加一个 CASE 语句,该语句根据 $usr_sec_group 的值应用不同的过滤器。关于 mySQL,我是一个相对“新手”,我尝试编写这样的语句并没有奏效。这是基本逻辑:
SELECT
field1,
field2,
etc
FROM
Organizations
CASE $user_sec_group
WHEN 1 THEN 'filter_statement_1'
WHEN 2 THEN 'filter_statement_2'
WHEN 3 THEN 'filter_statement_3'
ELSE 'filter_statement_else'
END CASE
ORDER By
field1
“filter_statements”可以是任何有效的过滤器,例如
'oName => 'a' AND oName < 'g'
我假设问题是一个相对简单的语法问题,但到目前为止,我还不能编写一个有效的 CASE 语句。
我将不胜感激一些指导!
此致,
埃里克