Конкретное предложение WHERE - PullRequest
0 голосов
/ 07 июня 2018

Я не могу понять это.

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

Тем не менее, я хочу убедиться, что когда это $id равно 100, его goodtill вбаза данных > '0'.

Есть несколько $id's, которые 100.У некоторых из них goodtill > '0', а у некоторых goodtill = '0'.Я хочу показать только те, которые имеют goodtill > '0' И, конечно, я хочу, чтобы все остальные $id's, которые не 100, чтобы показать.

Я пытался WHERE id = '$id OR ($id = '100' AND goodtill > '0'), но я уверен, что это не такэто сделано, так как он не делает то, что я хотел, чтобы он делал.

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

И случай, когда $ id = 100, тогда goodtill> 0 else 1 = 1.Вместо пункта или

0 голосов
/ 07 июня 2018

Попробуйте это:

SELECT id,goodtill FROM table WHERE id = '$id' AND (id != 100 OR (id = '100' AND goodtill > '0')) ORDER BY id LIMIT 1
0 голосов
/ 07 июня 2018

Вам необходимо добавить условия (в дополнение к 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 = 100 и goodtill > 0.id != 100 имеет значение false, что означает, что условие OR goodtill > 0 должно пройти.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...