这是我的疑问:
SELECT count(email_details.id) as total_emails,
email_titles.*
FROM email_details
LEFT JOIN email_titles ON email_details.email_title = email_titles.title
GROUP BY email_details.email_title
ORDER BY email_titles.id ASC
现在我的问题是email_details.email_title
是blob字段,email_titles.title
是文本字段,
两个字段都有’
字符的数据说“本月的视频”,当我运行此查询时没有left join
有’
字符的行无法检索,
如果我把左连接然后它只检索第一个表数据。
如何解决这个问题?
答案 0 :(得分:1)
我自己解决了我的问题, 我修改了像这样的连接代码
LEFT JOIN `email_titles` ON CONVERT( email_details.email_title
USING utf8 ) = CONVERT( email_titles.title
USING utf8 )
答案 1 :(得分:0)
最好的选择是加入除了那些大块文本之外的其他内容,或者如果不可能,请确保在两个表中以相同的方式存储相同的文本。
如果这也不可能,则需要将blob转换为连接的文本,也可以将varchar转换为char。像这样的东西
SELECT count(email_details.id) as total_emails,
email_titles.*
FROM email_details
LEFT JOIN email_titles
ON email_details.email_title = CAST(email_titles.title AS char(100) CHARACTER SET utf8)
GROUP BY email_details.email_title
ORDER BY email_titles.id ASC