2
這是我對奇怪的查詢。只有第一個和最後一個行應該承擔這樣的問題:MySQL COUNT結果在RoR中被解釋爲字符串而不是整數
SELECT s.parent_id AS id, COUNT(s.parent_id) as count
FROM items i
LEFT OUTER JOIN (SELECT item_id, user_id, MAX(created_at) as created_at
FROM item_views iv
WHERE iv.user_id = ?
GROUP BY item_id) AS v ON i.id = v.item_id
LEFT OUTER JOIN categories c ON c.id = i.category_id
INNER JOIN (SELECT node.id AS node_id, parent.title AS parent_title, parent.id AS parent_id
FROM categories AS node, categories AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt) s ON s.node_id=i.category_id
WHERE (i.updated_at > v.created_at OR v.created_at IS NULL)
AND i.updated_at > ?
GROUP BY s.parent_id;
當我把這個使用find_by_sql
,該count
列下的價值觀似乎像"1"
而不是整數的字符串。當然,我可以很容易地打電話給to_i
,但肯定這不是最好的解決方案。我懷疑我的查詢可能會導致MySQL返回字符串。