我试图设置一个新的值,如果某事= 1

时间:2012-04-02 18:14:59

标签: mysql sql

我正在尝试获取一个布尔值,如果等于1,则插入一个图像。

我查看了一个教程,并将其作为入门者来测试它是否有效:

AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1

我试图说如果 IF_DRAFT_BEER = 1,然后将值设置为5,否则2.如果这样可行,我会尝试实现图像。

我这样打印:

$row['IF_DRAFT_BEER']

但是,在插入和if 子句后,没有任何行显示。

任何人都知道为什么会这样吗?谢谢! :)

2 个答案:

答案 0 :(得分:3)

你总是会从该查询中得到一个布尔值为fALSE。您的IF()来电将返回52。然后,您针对1测试5或2,这将总是显示为FALSE。

删除最后一个= 1

AND IF(IF_DRAFT_BEER = 1, 5, 2)

所以实际上可以返回5和2。

答案 1 :(得分:2)

嗯,你的路线;

AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1

基本上会给出结果52,然后将其与1进行比较。由于52都不等于1,因此比较永远不会成立,查询也不会返回任何行。

我不太清楚你为什么要在where条款中进行这种计算,但我怀疑你会想要将你的计算结果移到选择中并实际得到它,网HRS欧洲;

SELECT IF(IF_DRAFT_BEER = '1', 5, 2) AS IF_DRAFT_BEER

这样它会显示在您的结果中$row