как выбрать запись определенного идентификатора, если она недоступна, а затем выбрать запись по умолчанию - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть один стол

<table style="width:100%">
    <tr>
      <th>serving_name</th>
      <th>price</th>
      <th>store_id</th>
    </tr>
    <tr>
      <td>M</td>
      <td>20</td>
      <td>0</td>
    </tr>
    <tr>
      <td>M</td>
      <td>10</td>
      <td>1</td>
    </tr>
</table>

Выберите запись, где store_id = 1, если store_id 1 недоступен, затем выберите 0 store_id record

Как это возможно

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Если $store_id 0 является вашим шаблоном, а все остальные значения являются числовыми и больше 0, то сделайте это в своем SQL с помощью предложений where, order by и limit.

select * from store_table where store_id=42 or store_id=0 order by store_id desc limit 0,1

Используйте механизм запросов выбранного фреймворка или создайте свой собственный класс / функцию интерфейса БД с * mysqli семейством классов / функций или PDO. Если вы идете по этому пути, то обязательно используйте подготовленные заявления.

0 голосов
/ 12 ноября 2018

Если вы ищете запрос, основанный на условии, то вы можете сделать это:

$this->db->select('whatever')->from('your_table');
if ($store_id == 1){ 
    $this->db->where('store_id', 1)
}else if($store_id == $something_else){ 
    // magic 
}
$query = $this->db->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...