具体的WHERE子句

时间:2018-06-07 19:39:41

标签: php sql database

我无法想出这个。

$sql = "SELECT id,goodtill FROM table WHERE id = '$id' ORDER BY id LIMIT 1";

但是,我想确保当$id100时,数据库中goodtill的{​​{1}}为> '0'

$id's有几个100。其中一些人有goodtill > '0',有些人有goodtill = '0'。我只想展示那些goodtill > '0'而且我希望显示非$id's的所有其他100的广告。

我试过WHERE id = '$id OR ($id = '100' AND goodtill > '0')但我很确定这不是怎么做的,因为它不能做我想做的事。

3 个答案:

答案 0 :(得分:2)

您需要添加条件(除id = $id之外),其中ID不是100,,其中的礼物大于0。

SELECT id,goodtill FROM table
  WHERE id = '$id'
  AND (id != 100 OR goodtill > 0)
  ORDER BY id LIMIT 1
  • 根据$id的输入9,这将匹配id = 9的所有记录。 where id != 100为真,并有效地使OR goodtill > 0支票短路。
  • 根据$id的输入100,这将匹配id = 100goodtill > 0的所有记录。 id != 100为false,表示OR goodtill > 0条件必须通过。

答案 1 :(得分:0)

当$ id = 100然后goodtill> 0 else 1 = 1时的情况。 而不是or子句

答案 2 :(得分:0)

试试这个:

SELECT id,goodtill FROM table WHERE id = '$id' AND (id != 100 OR (id = '100' AND goodtill > '0')) ORDER BY id LIMIT 1