2016-03-21 5 views
0

Мое требование - получить количество строк. В моем MySQL у меня есть столбец (элемент), который имеет значение «1265855». Когда я получаю счет, мне нужно игнорировать строки, который имеет 1265855 в столбце item. Как это сделать в инструкции sql?Пропустить строки, которые имеют указанное значение

$sql = "SELECT COUNT(*) as count FROM stock WHERE availability = :availability AND item = :item"; 
$stement = $con->prepare($sql); 
$stement->execute(array(':availability'=> $val1, ':item' => $val2)); // ignore 1265855 
$result = $stement->fetchAll(); 
+1

Добавление 'AND item <> 1265855' к запросу будет работать. –

+0

Кстати, измените fetchAll на [fetchColumn()] (https://phpdelusions.net/pdo#fetchcolumn) –

+0

@Sougata Спасибо. 'AND item =: item AND item <>: ignoreVal': а затем' $ stement-> execute (array (': availability' => $ val1, ': item' => $ val2, ': ignoreVal => "1265855 "));' Будет работать? Не могли бы вы вкратце объяснить, что означает '<>'? – Becky

ответ

0

Предполагая, что вы не пытаетесь фильтровать по этому вопросу, это должно работать:

$sql = "SELECT COUNT(*) as count 
      FROM stock 
     WHERE availability = :availability 
      AND item != :item"; 

$stement = $con->prepare($sql); 
$params = array(':availability'=> $val1, ':item' => '1265855'); 
$stement->execute($params); // ignore 1265855 
$result = $stement->fetchAll(); 

Не уверен, что вы делаете с $val2 иначе Тхо.

0

Вы можете добавить <> на ваш запрос.

< называется Not Equal To, и это также можно использовать, когда вы исключаете строку в запросе. Обратите внимание, что в некоторых версиях SQL этот оператор может быть записан в виде =

Вот как применять его в текущем коде:

$sql = "SELECT COUNT(*) as count FROM stock WHERE availability = :availability AND item <> 1265855"; 

или

$sql = "SELECT COUNT(*) as count FROM stock WHERE availability = :availability AND item != 1265855"; 

строка:

$sql = "SELECT COUNT(*) as count FROM stock WHERE availability = :availability AND item != 'string'"; 
Смежные вопросы