У меня есть настройка таблицы следующим образом
`id` int(11) NOT NULL AUTO_INCREMENT,
`eventid` int(11) NOT NULL,
`invites` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
В этой таблице у меня есть строки, которые выглядят так:
1, 127, '32215, 55648, 89887, 55555, 66666, 33333'
2, 168, '44444, 33333, 121212, 0540541'
Как бы я искал концы поля invites
для соответствия определенному числу, например, если я хотел найти 33333
, он вернул бы обе строки, но если бы я искал 44444
, он бы вернуть только второй?
Я считаю, что вы можете использовать find_in_set(), поэтому что-то вроде:
select * from tablename where find_in_set('44444', invites);
Это не очень хороший дизайн базы данных.
Как примечание, позвольте мне заметить, что ваша схема базы данных - сохранение набора значений в текстовом поле - является неправильной. Если вы хотите запросить отношения "один ко многим", как это, вы должны иметь другую таблицу, которая определяет взаимосвязь между одним событием и одним приглашением, например:
eventid invitationid
1 15
1 16
1 17
2 18
3 19
3 20
Затем вы сможете выполнять стандартные SQL-запросы, которые будут действительно эффективными и будут иметь смысл.