我有两张桌子

tweets(id,user_id,lang);
//lang is enum (en,fr,ar,ch)

user(id,accepted_lang);
// accepted_lang is varchar and can vary like en,ar OR ar,fa OR en,fa etc


我想按用户选择所有接受语言的推文。

select * from tweets where lang in (select accepted_lang from user where id=16);
#return 0 row


如果我将select accepted_lang from user where id=16替换为其结果fa,ar,它将返回一些行

select * from tweets where lang in ('fa','ar');
#return some of rows


所以实际上我的问题是如何将varchar转换为枚举或表

最佳答案

可能是因为您没有提到第二个表,而是在查询中使用了user_lang而不是accepted_lang

select * from tweets, user where tweet_lang = accepted_lang and user.id=5


但是,您可能希望接受特定用户的所有推文

select * from tweets
left join user on tweets.user_id = user.id
where -- your conditions here

关于mysql - MySQL子句与子句中的where,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20328901/

10-10 01:05
查看更多