Это таблица data
в моей базе данных MySQL:Как распечатать последовательное значение из моей базы данных?
То, что я хочу сделать, это:
- Если для
id
выходовno
01, 02 и 03, а затем распечатать последовательное значение иno
01. Если нет, напечатайте самый низкий недостающийno
и самый низкийid
, где значение отсутствует.
Пример1:
+-----------+
| id | no |
+-----------+
| 01 | 01 |
| 01 | 02 |
| 01 | 03 |
| 02 | 01 |
| 02 | 02 |
| 02 | 03 |
| 03 | 01 |
+-----------+
Результат Я желаю:
ID = 03, № = 02
Пример2:
+-----------+
| id | no |
+-----------+
| 01 | 01 |
| 01 | 02 |
| 01 | 03 |
| 02 | 01 |
| 02 | 02 |
| 02 | 03 |
+-----------+
Результат Я хочу:
ID = 03, № = 01
Я аль немного потерял с моим кодом:
$pdo = Database::connect();
$sql = "SELECT `id`, `no` FROM `data`";
$q = $pdo->prepare($sql);
$q->execute();
$result = $q->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_COLUMN);
foreach ($result as $key => $value) {
if (in_array("01", $value) AND in_array("02", $value) AND in_array("03", $value)) {
echo "id=";
echo "0";
echo $key + 1;
echo "<br>";
echo "no=01";
echo ",";
} else {
echo "id=".$key;
echo ",";
foreach ($value as $row => $number) {
echo "no=0";
echo $number + 1;
echo ",";
}
}
echo "<br>";
}
Мой результат, например, 1:
id = 02, no = 01
id = 03, no = 01 не
ID = 03, нет = 02
И, например, 2:
ID = 02, нет = 01
ID = 03, нет = 01
Пример 1 является простым , Он начинается с CROSS JOIN. Пример 2 сложнее, поскольку вы выбираете данные, которые вообще не существуют в базе данных. Тем не менее, он достаточно прост в изготовлении в этом случае. – Strawberry