【发布时间】:2013-03-23 03:27:47
【问题描述】:
我正在开展一个项目,在该项目中,用户对记录的访问受到基于用户的用户组的限制。我创建了一个全局变量 $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 语句。
我将不胜感激!
最好的问候,
埃里克
【问题讨论】: