Как объединить два результата MySQL?

При использовании Visual Studio, Вы могли бы также сделать "#pragma однажды" наверху headerfile для достижения того же самого как "#ifndef..." - обертывание. Некоторые другие компиляторы, вероятно, поддерживают его также.... Однако не делайте этого: D Палка с #ifndef-wrapping для достижения совместимости кросс-компилятора. Я просто хотел сообщить, что Вы могли также сделать #pragma однажды, так как Вы, вероятно, встретите этот оператор вполне немного при чтении другого кода народов.

Удача с ним

5
задан Kai Noack 23 May 2018 в 13:23
поделиться

3 ответа

PDO :: query () возвращает объект PDOStatement , который реализует интерфейс Traversable .
SPL класс IteratorIterator обертывает любой Traversable, чтобы действовать как Iterator .
А другой класс SPL, AppendIterator , может «объединять» итераторы, чтобы действовать как один итератор.

<?php
$result1 = $pdo1->query('SELECT * FROM foo');
$result2 = $pdo2->query('SELECT * FROM foo');

$it = new AppendIterator;
$it->append(new IteratorIterator($result1));
$it->append(new IteratorIterator($result2));

foreach($it as $row) {
  echo join(', ', $row), "\n";
}
4
ответ дан 14 December 2019 в 19:20
поделиться

Имейте в виду, что когда вы запрашиваете два сервера баз данных, у вас будет конфликт между идентификаторами записей (функция db auto_increment), если вы не используете UUID для каждой идентификации записи.

Поэтому, когда вы не используете uuid для генерации идентификаторов записей, когда вы объединяете два массива с результатами, вы должны отметить, какой из них принадлежит серверу, чтобы избежать конфликтов в дальнейшем.

0
ответ дан 14 December 2019 в 19:20
поделиться

Взгляните на array_merge .

array array_merge (array $ array1 [, array $ ...])

Объединяет элементы одного или нескольких массивы вместе, так что значения из одного добавляются в конец предыдущего. Он возвращает результирующий массив.

Если входные массивы имеют одинаковые строковые ключи, то более позднее значение для этого ключа будет перезаписан предыдущий. Если же массивы содержат числовые ключи, более позднее значение не перезапишет исходное значение, но будет добавлено.

Значения во входном массиве с цифровыми клавишами будут перенумерованы на увеличение ключей, начиная с нуля в массиве результатов.

1
ответ дан 14 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: