id title
--------------------------
1 mysql websites
2 html tips
3 mysql tricks
4 javascript tutorial
5 mysql queries
6 javascript framework
Я хочу выбрать связанные статьи для нескольких строк и сгруппировать их по идентификатору в одном запросе. Это возможно?
что-то типа
SELECT
id, title
FROM
articles
WHERE
title LIKE (TITLE_OF_CURRENT_ROW)
AND id IN (1,4)
GROUP BY
id;
и результат был бы
array ( // result for id = 1 0 => array ( 0 => array (id => 1, title => 'mysql websites'), 1 => array (id => 3, title => 'mysql tricks'), 2 => array (id => 5, title => 'mysql queries') ), // result for id = 4 1 => array ( 0 => array (id => 4, title => 'javascript tutorial'), 1 => array (id => 6, title => 'javascript framework') } }
редактировать:
Я делаю это потому, что хочу аннулировать queries inside loop
. Например, я генерирую 100 строк и сохраняю их в файлы.
$result = $mysql->query("SELECT id, title FROM articles LIMIT 100");
while($row = $result->fetch_assoc()) {
$related_result = $mysql->query("SELECT id, title FROM articles WHERE title LIKE '%".$row['title']."%' AND id != ".$row['id']);
// while... get related data
save_data_to_file($row['id'], $row['title'], $related['ids'], $related['titles']);
}
Соответствующий запрос выше будет повторяться 100 раз, как я могу обойти это?
id IN(1,4)
, но все ваши обнадеживающие результаты имеют все идентификаторы... Я не понимаю. - person Dave   schedule 16.11.2012