Как выдернуть из ячейки "1, 2, 15" каждое из значений?

Demiurg

Guest
>Такой пример нужен...
пример чего ?
Подумай напремер, о задаче получения списка страниц, в которых есть ссылка на данную в обоих случаях.
 

Johannes

Guest
Asar, а как ты думаеш, гибкость SQL можно сравнить с embeded-функциями PHP?
Для обработки динных в таблице ты можеш использовать всю мощь SQL.
А для обработки строк или масивов ты используеш то что есть.
 

Asar

Новичок
В моем (т. е. сложном для воплощения, как я понимаю) случае нужно найти по id ссылок все id страниц, на которых такие имеются - и все.
Собственно, задача, обратная моей изначальной.
Чем будет проще искать то же самое в отдельной таблице?

-~{}~ 22.09.04 10:50:

Johannes, а где прибавится мощь СКЛ, если в новой таблице все равно id ссылок через запятую пойдут? Или они должны иначе реализовываться?
 

Demiurg

Guest
>случае нужно найти по id ссылок все id страниц, на которых такие имеются - и все.
и всего то полное сканирование таблицы с вытаскиванием подстрок.
 

Johannes

Guest
Asar ты не прав!!!
В новой таблице пойдут кортежи вида:
(1,1)
(1,3)
(1,123)
и т.д.
SELECT * from Table2 WHERE id=1
 

Asar

Новичок
Demiurg, как я понимаю, в случае отдельной таблицы все равно придется перерывать все поле id ссылок. И выводить id не ссылок. И в большой таблице - те же 2 поля. Где преимущества?

-~{}~ 22.09.04 10:54:

Johannes, собственно, у меня в том и вопрос - почему нельзя сделать SELECT * from Table1 WHERE id=1 ? Если в ней ТЕ ЖЕ поля?
 

Demiurg

Guest
>как я понимаю, в случае отдельной таблицы все равно придется перерывать все поле id ссылок.
не придется, если индексы настроишь.
 

Johannes

Guest
Окі, 2-й пример.
Задача: удалить ссылку на страницу id=3.
Твои действия:
1)запрос к БД
2)explode данных в массив
3)перелопачивание массива для удаления ключа=>значения
4)implode массива
5)update БД

А теперь в случае таблиц:
1) DELETE from Table2 WHERE id=$id AND id2=$id2
 

Asar

Новичок
Люди, если я правильно понимаю.
Мой вариант - 1 таблица:
id1
title
id2

Ваш вариант - 2 таблицы:

id1
title

id1
id2

Мне в любом случае придется искать в поле id2 и выискивать для него значения в id1 в задаче Демиурга или наоборот - в моей.

Так зачем же делать 2 таблицы?

-~{}~ 22.09.04 11:03:

Johannes, так НЕ будет id2=$id2. У меня же там много id, не только на эту, целевую, страницу. Как и в большой таблице...
 

Johannes

Guest
Если у тебя с 1го id1 только одна ссылка на id2 то можеш оставить как было. но если ссылок id2 с одного id1 много, то правильнее будет разбить по таблицам.

А вообще-то мне не хочется тебя убеждать. Мне ыто ненадо. Делай как хочешь.
 

Asar

Новичок
Johannes, я же с тобой не спорю. Просто не понимаю выгоды в случае, когда id много - их что в одной таблице, что в двух - все равно придется писать в одной ячейке через запятую. Или я не прав?
 

Johannes

Guest
Автор оригинала: Asar
Johannes, так НЕ будет id2=$id2. У меня же там много id, не только на эту, целевую, страницу. Как и в большой таблице...
А ты запрос правильно читал? А ты хоть чуть-чуть SQL знаеш?
Если да, то ты сможеш мне ответить: сколько записей удалит запрос, который я написал?

-~{}~ 22.09.04 10:11:

Fuck! (да извинит меня Фанат)
Какие, в ж..., запятые?!?!
То что делаеш ты:
Table1
[ id1 | 'id2-1, id2-2, id2-3' ]

То что надо делать:
Table2
[ id1 | id2-1 ]
[ id1 | id2-2 ]
[ id1 | id2-3 ]

Как еще обьяснить, чтобы до тебя дошло?
 

Asar

Новичок
Гмы... Вы, случаем не предлагаете сделать вторую таблицу вида:

id1_____________id2_________

1 2
1 4
1 34
1 456
2 34
2 45

Вместо

1 2,4,34,456
2 34,45


?
 

Johannes

Guest
Настал долгожданный час!
Дошло, небось!
 

Asar

Новичок
Вот видишь, все-таки дошло...

-~{}~ 22.09.04 11:15:

Тогда все ясно.
Если для ускоспециальной задачи - может сгодиться и через запятые. А если для неузко - тогда лучше 2 таблицы...
 

Asar

Новичок
Естественно, подташнивает. От того, что не сразу понятно стало, в чем отличие полей первой таблицы от полей второй.
 
Сверху