Я делаю кормовую стену, а две службы сохраняют сообщения в одной таблице базы данных.Комбинат 2 MySQL выбирает утверждения как с использованием LIMIT
Одна служба проводки используется намного больше, чем другая, поэтому на стене я хочу ограничить каждую службу 25 новыми сообщениями (всего 50) на первой странице для равного представления.
Это то, что я изначально был, без вечера посты:
$sql = "SELECT * FROM posts";
$sql .= " WHERE disq = 0";
$sql .= " AND approved = 1";
$sql .= " ORDER BY created_at DESC";
$sql .= " LIMIT 50";
но я стараюсь, чтобы ограничить их службы:
$sql_1 = "SELECT * FROM posts";
$sql_1 .= " WHERE disq = 0";
$sql_1 .= " AND approved = 1";
$sql_1 .= " AND source = 'TW'";
$sql_1 .= " ORDER BY created_at DESC";
$sql_1 .= " LIMIT 25";
$sql_2 = "SELECT * FROM posts";
$sql_2 .= " WHERE disq = 0";
$sql_2 .= " AND approved = 1";
$sql_2 .= " AND source = 'IG'";
$sql_2 .= " ORDER BY created_at DESC";
$sql_2 .= " LIMIT 25";
Doing что-то вроде
$sql = $sql_1 UNION $sql_2;
Кажется, не работает, потому что все примеры, которые я вижу, выполняют LIMIT в конце кучки запросов. После этого должен быть выполнен ORDER BY, чтобы хронологически переупорядочить столбы и сделать смешанную службу на стене.
MySQL помощь оценена
Вы можете использовать временную таблицу для хранения результатов. Таким образом вам даже не понадобится _UNION_. –
Обновления с новыми сообщениями каждые несколько минут, поэтому я не уверен, что лучше, используя объединение или таблицу. Не действительно используется для запросов mysql, более сложных, чем выбор, обновление и т. Д. – Kiwizoom
Временные действительно быстрые, потому что они в памяти. И они существуют только для продолжительности транзакции. –