【问题标题】:How to do a Mysql SELECT statement based on IF condition?如何根据 IF 条件执行 Mysql SELECT 语句?
【发布时间】:2011-10-19 09:46:17
【问题描述】:

我想将 2 个 mysql 调用与 if 条件合并为一个。这是我目前拥有的:

IF
mysql_query("SELECT File FROM DB.ShoePics WHERE Cover='1' AND ShoeID='$ShoeID' LIMIT 1")
Else
mysql_query("SELECT File FROM DB.ShoePics WHERE Cover='0' AND ShoeID='$ShoeID' LIMIT 1")

我猜它看起来与此类似,但我知道它不正确:

mysql_query("SELECT File FROM DB.ShoePics WHERE IF(Cover='1')ELSE(Cover='0') AND ShoeID='$ShoeID' LIMIT 1")

谁能告诉我怎么做?谢谢!

【问题讨论】:

  • 您到底想完成什么?如果可用,使用“Cover = 1”行,否则使用“Cover = 0”行?
  • 您没有提供任何使用其中一种的条件...
  • 对不起.. 弗兰克你所说的是我想要完成的。选择如果cover=1 可用,否则任何其他都可以。

标签: mysql if-statement conditional-statements


【解决方案1】:

mysql_query("SELECT File FROM DB.ShoePics WHERE (Cover='1' AND ShoeID='$ShoeID' LIMIT 1") OR (Cover='0' AND ShoeID='$ShoeID' LIMIT 1")

【讨论】:

    【解决方案2】:
    SELECT File 
    FROM DB.ShoePics 
    WHERE  
        CASE WHEN CONDITION=1 THEN Cover='1' ELSE Cover='0' END
        AND ShoeID='$ShoeID' LIMIT 1"
    

    【讨论】:

    • 不幸的是,这不起作用。它给了我它找到的第一条记录,而不是cover=1的行...我基本上是在尝试获取用户想要设置为封面的鞋子的图片。如果用户尚未设置封面,则选择第一张可用的图片。
    【解决方案3】:

    让你的查询像

    SELECT File FROM DB.ShoePics WHERE (Cover='1' OR Cover='0') AND ShoeID='$ShoeID' LIMIT 1
    

    【讨论】:

      猜你喜欢
      • 2013-09-21
      • 2021-02-17
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多