2016-04-25 175 views
2

我已经创建了一个邮件表,其中包含以下字段。如何在Mysql字段中获取单个值的多个值

id mail_to mail_subject mail_message 
1  6,9,10  Test Mail  Test Message 
2  4,8,6  Test Mail  Test Message 

存储在mail_to字段中的值是用户的id。 我想显示mail_to为6的所有邮件。在这种情况下如何使用where条件。

我试图用这个查询来实现结果,但它不起作用。

SELECT * FROM tbl_profile_inbox WHERE mail_to = '6' ; 

你们能帮帮忙吗?

+0

使用'SUBSTRING'。 –

+0

'SUBSTRING'可能导致在某些特定情况下产生错误输出,例如'mail_to = 9,66,10' – 1000111

+1

我建议更改您的表格设计。 – 1000111

回答

3

您可以使用FIND_IN_SET()为:

SELECT * FROM tbl_profile_inbox WHERE FIND_IN_SET('6',mail_to) 
+0

谢谢你的工作。 –

+0

如果你不想改变你的餐桌设计,这是一个很好的解决方案**。但我仍然建议改变你的餐桌设计。 – 1000111

+0

为什么我需要改变我的餐桌设计。这种设计有什么问题吗? –

0

可以使用REGEXP也。

SELECT * FROM tbl_profile_inbox WHERE mail_ to REGEXP '[[:<:]]6[[:>:]]' 
相关问题