Я использую последнюю версию MySQL.Как использовать UPDATE с SELECT в MySQL
У меня есть две таблицы: backlinks
и pages
.
Я пытаюсь обновить столбец cache_links
в таблице pages
для определенного URL-адреса. Столбец должен быть равен числу строк в backlinks
, где destination
= url
.
я мог бы сделать это в моем языке приложения, как это так, в случае, что я имею в виду сделать это не ясно:
$myURL = "http://google.com/";
$numLinksResult = mysqli_query($c, "SELECT count(*) AS `num` FROM `backlinks` WHERE `same_domain` = FALSE AND `url` = '$myURL'");
$numLinksRow = mysqli_fetch_assoc($numLinksResult);
$numLinks = $numLinksRow['num'];
mysqli_query($c, "UPDATE `pages` SET `links` = $numLinks WHERE `url` = '$myURL'");
Запрос Я пытался построить в настоящее время выглядит следующим образом:
UPDATE `pages`, `backlinks` SET pages.`cache_links` = backlinks.count(*)
WHERE backlinks.`destination` = pages.`url`
AND backlinks.`same_domain` = FALSE
AND pages.`url` = 'http://google.com/'
Проблема, я думаю, находится на backlinks.count(*)
. Я понятия не имею, что я делаю неправильно. Ошибка, которую я получаю:
#1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near '*)
WHERE backlinks.`destination` = pages.`url` AND backlinks.`same_' at line 1
Любая помощь будет принята с благодарностью. Благодаря тонну!
Работал как очарование. Я люблю тебя, спасибо! Я отвечу на ваш ответ через ~ 7 минут, когда смогу. – 2010-11-29 23:22:46