У меня есть таблица с двумя столбцами Action_key
(в которой хранятся значения loggedin
и optin
) и Value
(в которых хранятся 0 или 1)
Моя таблица имеет Id
автоинкремент столбца.
Обновление
Ниже показано, как я вставляю, проверяя условие.
Теперь мне нужно условие, чтобы проверить, имеет ли новая вставляемая строка то же значение, что и у Uid
, Action_key
и Value
последней записи, иначе она должна быть вставлена.
$uniquedataoptininArray = array( //except CreatedDate
'Uid'=> $uid,
'Action_key'=> $actionkey,
'Value'=>$login_optin_value
);
$userexists= $this->getUserOptInLogTable()->getOptinLogindetails($uniquedataoptininArray);
if($userexists){
echo 'record exist';
}else{
echo 'To be inserted';
$result = $this->getUserOptInLogTable()->insertdetails($dataArray);
Приведенный ниже запрос дает мне последнюю вставленную строку - что нормально. но нужно знать, как я могу проверить условие, используя приведенный ниже запрос
$qry ="SELECT * FROM UserOptInLog WHERE Uid = ". $uid ." ORDER BY Id DESC LIMIT 1;";
Текущая проблема.
Условия, когда следует вставить
1) Если моя таблица ниже заполнена значениями, как показано, сейчас я пытаюсь вставить строку с Uid 1608
, ActionKey loggedin
и Value 1
, но она не вставляется.
2) Или, если я сделаю запись со значениями Uid 1608
, Action_key optin
и value 1
- это не вставка (которая должна вставлять в идеале)
Условия, когда его не следует вставлять
1) с существующими данными таблиц - если я вставлю Uid 1608
, ActionKey loggedin
и value 0
- в основном та же строка, что и в последней строке - она не должна вставлять
![enter image description here](https://i.stack.imgur.com/EaBMs.png)