mysql,选择WHERE子句

时间:2013-02-03 12:52:34

标签: mysql

我面临的情况是,我需要一个WHERE子句来执行不同的操作,我不知道如何解决。

SELECT ...
FROM ...
WHERE

      (
      CASE @test
      WHEN 0
        THEN
          pid = inPID
      WHEN 1
        THEN
          id = inPID
          @test := 0    <- syntax error
      END
    )

我试着定义一些@test变量(由procedure参数初始化),如果用TEST = 1调用过程,我只需要id = inPID一次。这可能吗?

2 个答案:

答案 0 :(得分:1)

尝试这样做

  @test =  @test - 1
   -- this just to be @test is 0 , if you have other value change  it be 0 

修改

试试这个

  (
  CASE @test
  WHEN 0
    THEN
      pid = inPID
  WHEN 1
    THEN
      id = inPID
  WHEN 1
    THEN
      @test := 0    
  END

使用此

  WHEN 1
THEN
  id = inPID AND  @test := 0

答案 1 :(得分:1)

你可以尝试一下吗?最好是你可以向我们展示整个查询语句。在CASE THEN中,您可以在SQL Server中使用ANDOR,无论如何都要测试它。: -

SELECT ...
FROM ...
WHERE

      (
      CASE WHEN @test = 0 THEN pid = inPID
           WHEN @test= 1 THEN id = inPID AND @test:=0
      END
    )