PHP + MySQL. Несколько значений в одно поле

Печать RSS
377

Автор
Пишу, строю и воображаю
0
Есть таблица (cities):
ID Namecity
1 Москва
2 Лондон
3 Дели
4 Душанбе
5 Нью Йорк

Есть таблица с кредитными картами (cards), которые поддерживают города
ID Name City
1 Visa Москва(ID1)
2 Visa Дели(ID3)
3 Visa Душанбе(ID4)
4 Mastercard Нью Йорк(ID5)
5 Mastercard Душанбе(ID4)

Из-за городов приходится дублировать записи. Можно ли как то в поле "City" вбить несколько ID городов? Например
ID Name City
1 Visa 1,3,4
2 Mastercard 5,4

И чтобы при поиске
select * from `cards` where `city`='3'
он выдал результат ID1, потому что в нём есть 1,3,4....

Спасибо за помощь :-)
Изменил: ШЕДЕВР (06.01.2020 / 13:24)

Оранжевые штаны
0
Нужна промежуточная таблица связей.
ID card_id city_id
Вторая таблица тогда будет
ID Namecard
И потом уже
SELECT * FROM `cards` WHERE `id` = (SELECT `card_id` FROM `card2city` WHERE `city_id` = 3)

Как-то так, возможно пример накидал не корректно

Господин ПЖ
0
можно что-то типа
SELECT * FROM `cards` WHERE `city` REGEXP '(^|,)3($|,)';

Но лучше сделать поле json там проще искать
Изменил: Вантуз-мен (07.01.2020 / 06:49)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск