[Решено] Почему при выборке из БД 10 записей (всего около 20000 выдается по SQL-запросу) иногда выбирается 9, 8 и ниже?

Bars

Новичок
Код:
define('APP_PAGES_AT_ONCE', 10);

$stmt = $db->prepare('SELECT uri, id, parent FROM `table` WHERE level=2 AND started IS NULL AND ended IS NULL LIMIT ' . APP_PAGES_AT_ONCE);
$stmt->execute();
$pages_map = $stmt->fetchAll(PDO::FETCH_UNIQUE);

$pages_count = count($pages_map);
die('='.$pages_count); exit;
Ровно по этому же SQL-запросу в phpMyAdmin выдается около 20000 записей, которые в 90% случаев скриптом выбираются как надо. Параллельных изменений в БД не производится. Попробовал выполнить данный код просто в начале скрипта - выдает стабильно 10 строк. А вот в реальном коде при выборке что-то происходит. Такое последние несколько дней появилось, до этого несколько месяцев с запуска все было отлично.
 

Bars

Новичок
Что в нем такого?)
Никогда не сбоил, да и UNIQUE означает не уникальные строки (по какому признаку скрипту или СУБД определять их уникальность?), а вид выдачи.

В данном случае с UNIQUE, он позволяет задать первую колонку в качестве ключа массива.

Хмм... А вот теперь я кажется понял)))
Надо будет проверить взятые URI на уникальность при следующей ошибке. А лучше прогнать столбец на дубли спец запросом.

Спасибо за наводку!
Да, так и есть, куча дублей. Вопрос решен. Благодарю!
 
Последнее редактирование:
Сверху