Я использую последнюю версию 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
Любая помощь с благодарностью.Спасибо за тонну!