SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.03.2010 17:13:59

LeXA86
Участник
Зарегистрирован: 22.03.2010
Сообщений: 3

Какой тип использовать в базе для ввода нескольких значений

Информация выводится из базы данных и к каждой заметке есть категория. Поле называется например cat тип varchar(255) и присвоено цифровое значение. Как сделать так, чтобы в это поле вписать несколько значений (например 1, 7, 9) какой тип использовать? И как сделать выборку, чтобы эта заметка выходила при выборе категории 1, 7, 9?

Неактивен

 

#2 22.03.2010 18:31:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Какой тип использовать в базе для ввода нескольких значений

Сделайте третью табличку, в которой храните номер категории и номер строки.

Неактивен

 

#3 23.03.2010 07:14:23

LeXA86
Участник
Зарегистрирован: 22.03.2010
Сообщений: 3

Re: Какой тип использовать в базе для ввода нескольких значений

Спасибо, а как тогда связать таблицу категории с основной таблицей с заметками.
Например
в основной таблице есть id заметки сама заметка и несколько других полей дата, автор..
в таблице с категорией будет категория, id заметок относящихся к этой категории

как выбрать данные из таблицы с категориями, чтобы потом можно было бы выводить заметки относящиеся к ним например в цикле?

Неактивен

 

#4 23.03.2010 16:06:03

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Какой тип использовать в базе для ввода нескольких значений

Если в цикле, то SELECT id FROM categories, если одним запросом, то как-то так:

SELECT c.name, m.name
FROM categories c
JOIN categories2messages c2m ON c.id = c2m.category
JOIN messages m ON m.id = c2m.message;

Неактивен

 

#5 25.03.2010 22:35:06

LeXA86
Участник
Зарегистрирован: 22.03.2010
Сообщений: 3

Re: Какой тип использовать в базе для ввода нескольких значений

Спасибо.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson