SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

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

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

Вы не зашли.

#1 12.01.2010 18:29:49

Raider74
Участник
Зарегистрирован: 12.01.2010
Сообщений: 2

Несколько значений в ячейке

Доброго времени суток!

Как занести несколько значений в одну ячейку (например: столбец `num` co значениями: 10;15;21;32;45... и т.д) так, что бы при запросе одного из значений (например "SELECT * FROM table WHERE num=21") он мне выдал эту строчку.

Какими средствами можно это реализовать?

Заранее спасибо за ответ!

Неактивен

 

#2 12.01.2010 19:22:26

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

Re: Несколько значений в ячейке

WHERE num LIKE ';21;'. Только лучше нормализуйте табличку и храните каждое
значение в своей строке. Такой зверь, как у Вас, никогда не будет работать быстро.

Неактивен

 

#3 12.01.2010 20:38:27

Raider74
Участник
Зарегистрирован: 12.01.2010
Сообщений: 2

Re: Несколько значений в ячейке

paulus написал:

WHERE num LIKE ';21;'. Только лучше нормализуйте табличку и храните каждое
значение в своей строке. Такой зверь, как у Вас, никогда не будет работать быстро.

Тогда...
А как грамотно это сделать? (если это конечно реализуемо smile)

Неактивен

 

#4 13.01.2010 14:40:02

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

Re: Несколько значений в ячейке

-- Создание данных
CREATE TABLE groups (group_id INT KEY, num INT NOT NULL, INDEX(num));
INSERT INTO groups VALUES (1, 10), (1, 15), (1, 21), … (2, 7), …;

-- Выборка
SELECT g2.num
FROM groups g1 JOIN groups g2 USING (group_id)
WHERE g1.num=21;

Неактивен

 

#5 19.01.2010 00:50:12

vaspet
Завсегдатай
Зарегистрирован: 11.03.2009
Сообщений: 83

Re: Несколько значений в ячейке

А если значений не так много (<64) то можно использовать тип поля SET сохранив логику приложения.
А будет ли в таком случае запросе использоватся индекс?

Отредактированно vaspet (19.01.2010 00:51:57)

Неактивен

 

#6 19.01.2010 13:13:16

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

Re: Несколько значений в ячейке

Должен, но лучше смотреть конкретный EXPLAIN. Возможно, нужно будет
преобразовывать значения к BIGINT.

Неактивен

 

Board footer

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