Laravel жалуется на запрос с дублированными именованными параметрами
Когда я делаю (в Laravel):
<?php
\DB::select('SELECT * FROM my_table WHERE id = :id || id = :id', [
'id' => 1,
]);
Это говорит:
SQLSTATE [HY093]: Неверный номер параметра (SQL: SELECT * FROM my_table WHERE id =: id || id =: id)
Но когда я делаю (в чистом php):
<?php
$dbh = new PDO('mysql:dbname=...', '...', '...');
$stmt = $dbh->prepare('SELECT * FROM my_table WHERE id = :id || id = :id');
$r = $stmt->execute([
'id' => 1,
]);
while ($row = $stmt->fetch()) {
var_dump($row['id']);
}
Это успешно. Что я делаю неправильно?
Постскриптум Видимо, запрос, который я выполнил, когда столкнулся с проблемой, был более осмысленным.
UPD Более или менее реальный запрос:
SELECT id
FROM objects
WHERE ACOS(
SIN(RADIANS(lat)) * SIN(RADIANS(:lat))
+ COS(RADIANS(lat)) * COS(RADIANS(:lat)) * COS(RADIANS(:lng - lng))
) * 6371 < 10