SELECT n.id, n.title, n.comment, \
p.title_p, p.id_p, \
c.title as title_b, c.id as c_id, \
u.name, \
COUNT(h.id) AS kl \
FROM news n \
LEFT JOIN blog c ON n.parent = c.id \
LEFT JOIN user u ON u.id = c.id_u \
LEFT OUTER JOIN list p ON n.p_id = p.id\
LEFT JOIN history as h ON h.id = n.id \
WHERE n.approve = 1 \
GROUP BY n.id
Все хорошо, индексирует успешно. Но в php
$stmt = $mnt->query("SELECT * FROM `indexnews` WHERE MATCH('bhop')");
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 table indexnews: parse error: P09: syntax error, unexpected TOK_IDENT, expecting $end near '' in
Пробовал по разному выставлять кавычки, не выходит.
Все работает, ошибка возникает именно тогда когда индекс сгенерирован с таблицей LEFT JOIN history as h ON h.id = n.id \
Пытаюсь подсчитать сколько в ней записей по каждой новости.
sql_query = SELECT n.*, \
SUM(CASE WHEN h.time >= UNIX_TIMESTAMP() - 86400 THEN 1 ELSE 0 END) AS 24_hours,\
SUM(CASE WHEN h.time >= UNIX_TIMESTAMP() - 2419200 THEN 1 ELSE 0 END) AS 1_month\
FROM news AS n\
LEFT JOIN history as h ON h.id = n.id \
WHERE n.approve = 1 \
GROUP BY n.id
Все тоже самое, если к mysql отправляю запрос. Все работает, если создаю индекс, индекс успешно создается. А вот выбрать из него записи, увы, что та с токеном…
Очень странно, все работает. Не знаю почему так, удалил поле в таблице которое ни как не затрагивал в конфиге, больше ничего не делал. Разве что убрал цифры из имени полей.