MySQL: mysqli_fetch_array ()

0

Как использовать mysqli_fetch_array() для этих 3 запросов в одной таблице? или как сделать этот запрос 3 в 1 запросе?

SELECT clinic,AVG(rating) FROM review GROUP BY clinic ORDER BY clinic
SELECT clinic,COUNT(rating) AS die FROM review WHERE rating = 1 GROUP BY clinic
SELECT clinic,COUNT(rating) AS normal FROM review WHERE rating = 7 GROUP BY clinic
Теги:

2 ответа

1

Вы можете использовать выражения case чтобы переместить условие в последних двух запросах на выраженные выражения. count пропускает null s, поэтому просто используйте выражение, которое возвращает что-то только для условия, которое вы хотите подсчитать:

SELECT   clinic, 
         AVG(rating),
         COUNT(CASE rating WHEN 1 THEN 1 END) AS die,
         COUNT(CASE rating WHEN 7 THEN 1 END) AS normal
FROM     review
GROUP BY clinic 
ORDER BY clinic
  • 0
    Ничего себе спасибо ^. ^ Я искал в Google и YouTube в течение 5 часов, но не могу найти как.
0

Вы можете использовать mysqli :: multi_query. В качестве примера,

$query  = "SELECT CURRENT_USER();"; # Example Query
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5"; # Second Example Query

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();

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

Примечание. Пример из ссылки, предоставленной для всей документации mysqli::multi_query.

Удачи!

  • 0
    Большое спасибо ^. ^
  • 0
    ИМХО, мультизапрос почти никогда не является правильным решением. Из этого мало что получается, если просто вызывать mysqli_query() отдельно для каждого запроса, и это только усложняет получение результатов.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню