Witam,
Właśnie natknąłem się na wolne zapytanie z forum Invision. Na moje oko ostatni warunek nie ma sensu. Oto one:
SELECT p.pid,
p.pid AS search_id,
p.author_id,
p.post_date,
REPLACE(p.post, '-', '‐') AS post,
p.topic_id,
p.queued,
t.tid,
LOWER(t.title) AS tordinal,
REPLACE(t.title, '-', '‐') AS title,
t.views,
t.posts,
t.forum_id,
t.last_post,
t.state,
t.start_date,
t.starter_id,
t.last_poster_id,
t.topic_firstpost,
CASE
WHEN t.approved = -1 THEN 1
ELSE 0
END AS soft_deleted,
CASE
WHEN t.approved = -1 THEN 0
ELSE t.approved
END AS approved,
CASE
WHEN t.topic_archive_status IN (0,
3) THEN 0
ELSE 1
END AS archive_status,
CONCAT(SUBSTRING(t.last_post, 2, 8), '0', LPAD(t.tid, 10, 0)) AS last_post_group
FROM ibf_posts p
LEFT JOIN ibf_topics t ON (p.topic_id=t.tid)
WHERE p.pid >
(SELECT cs_value
FROM ibf_cache_store
WHERE cs_key='sphinx_forums_counter_posts')\G
Nie podoba mi się:
WHERE p.pid >
(SELECT cs_value
FROM
Przecież pole ibf_posts.pid to int a ibf_cache_store.cs_value to mediumtext !
Jak można porównywać wartość int z mediumtext? Nie rozumiem tej części tego zapytania, może mnie ktoś oświecić?