Я стремлюсь эффективно объединить два запроса на выборку в один запрос с учетом производительности.
Я хочу, чтобы первый SELECT
получил строку.Если строка не существует, выполните другой запрос SELECT
.Если строка существует из первого запроса, используйте строку, найденную в первом запросе, и не выполняйте / не получайте ничего из второго запроса.
Вот мои два запроса:
$stmt = $dbh->prepare("SELECT * FROM users WHERE unique_code = :unique_code LIMIT 1");
$stmt->bindParam(':unique_code', $uniqueCode);
$stmt->execute();
$row = $stmt->fetch();
if(!$row) { // If row does not exist
$stmt = $dbh->prepare("SELECT * FROM users WHERE birthday = :birthday LIMIT 1");
$stmt->bindParam(':birthday', $birthday);
$stmt->execute();
$row = $stmt->fetch();
}
Как я могу это сделать?
РЕДАКТИРОВАТЬ: пример данных:
id | unique_code | birthday
-----------------------------
1 123 1987-05-20
2 456 1955-03-10