2016-04-25 3 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, являются идентификаторами пользователей. Я хочу показать всю почту, где mail_to is 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[[:>:]]'