На данный момент у меня есть два вопроса. Первый выбирает столбец из строки. Затем второй удаляет эту строку. Поскольку оба запроса имеют дело с одной и той же строкой, мне было интересно, можно ли выполнить оба запроса в одном (чтобы уменьшить количество кода).
Я посмотрел на SELECT, а затем сразу удалил запись mysql и попытался ответить на любую кухню
Это был мой код заранее (который отлично работает):
$stmt = $con->prepare("SELECT number FROM viewings WHERE username=:user");
$stmt->bindParam(':user', $user);
$stmt->execute();
$row = $stmt->fetch();
$result = $row['number'];
$stmt = $con->prepare("DELETE FROM viewings WHERE username=:user");
$stmt->bindParam(':user', $user);
$stmt->execute();
echo $result;
Это был мой код после попытки ответа:
$stmt = $con->prepare("DELETE FROM viewings WHERE username=:user IN (SELECT number FROM viewings WHERE username=:user LIMIT 1)");
$stmt->bindParam(':user', $user);
$stmt->execute();
$row = $stmt->fetch();
$result = $row['number'];
echo $result;
Однако я получаю следующие ошибки:
Неустранимая ошибка: исключить исключение "PDOException" с сообщением "SQLSTATE [42000]: ошибка синтаксиса или нарушение доступа: 1235 Эта версия MySQL еще не поддерживает" LIMIT & IN/ALL/ANY/SOME subquery "в /home//public_html/page.php: 47
Трассировки стека:
0/home//public_html/page.php(47): PDOStatement-> выполнить()
1 {main} брошен в /home//public_html/page.php в строке 4
Вы можете попробовать использовать условие EXISTS
:
DELETE FROM viewings WHERE EXISTS (SELECT * FROM viewings WHERE username=:user LIMIT 1)
Источник: условие SQL EXISTS
viewings
из этого запроса.IN
. Синтаксис:WHERE columnName IN ('value1', 'value2', ...)
.