Kak ???
11 отговора
615 прегледа
Kak ???
Имам таблица която има поле:
NOTE - char(254) което има данни във вид "1, 2, 15, 16, 23, 24"
търся за "1, 5, 10"
т.е как да изкарам записите от таблицата който съдържат поне едно от числата.
NOTE - char(254) което има данни във вид "1, 2, 15, 16, 23, 24"
търся за "1, 5, 10"
т.е как да изкарам записите от таблицата който съдържат поне едно от числата.
Re: Kak ???
По-добре си промени структурата на таблиците.
Даже и да измислиш начин ще е такава гимнастика, че всеки текстов файл ще работи по-добре.
И най-вече - няма да можеш да използваш никакъв индекс.
Ако си начинаещ както подсказва beginer
по добре разкажи малко повече за таблицата.
ако примерно имаш
id int, note char(254);
добавяш нова таблица примерно
notes (id int, note int, primary key(id, note));
И изведнъж твоят въпрос получава елементарен отговор:
SELECT id FROM notes WHERE note IN (1, 5, 10);
или направо:
SELECT * FROM твойта_си_таблица, notes WHERE твойта_си_таблица.id = notes.id AND note IN (1, 5, 10);
Да не говорим пък колко място пестиш по диска ... с добавяне на нова таблица
salle.online.bg/sig
Даже и да измислиш начин ще е такава гимнастика, че всеки текстов файл ще работи по-добре.
И най-вече - няма да можеш да използваш никакъв индекс.
Ако си начинаещ както подсказва beginer
по добре разкажи малко повече за таблицата.
ако примерно имаш
id int, note char(254);
добавяш нова таблица примерно
notes (id int, note int, primary key(id, note));
И изведнъж твоят въпрос получава елементарен отговор:
SELECT id FROM notes WHERE note IN (1, 5, 10);
или направо:
SELECT * FROM твойта_си_таблица, notes WHERE твойта_си_таблица.id = notes.id AND note IN (1, 5, 10);
Да не говорим пък колко място пестиш по диска ... с добавяне на нова таблица
salle.online.bg/sig
Re: Kak ???
ето и таблицата:
id, ..., note char(254)
цялата работа е че в това поле note събирам информация за отделни сервизи на един хотел.
например - тоалетна, баня и т.н.
това на WEB го визуализирам с chekbox.
когато ги приемам от формата ги получавам в този формат - 1, 5, 9
но ще ми се наложи да търся по тези критерий.
например: кой има тоалетна
а търсенето пак ще е чрез checkbox.
т.е. ще получавам от web form нещо такова: 3, 4, 23
след което ще го сравнявам с даните от таблицата
т.е. от това поле.
Но може би си прав
id, ..., note char(254)
цялата работа е че в това поле note събирам информация за отделни сервизи на един хотел.
например - тоалетна, баня и т.н.
това на WEB го визуализирам с chekbox.
когато ги приемам от формата ги получавам в този формат - 1, 5, 9
но ще ми се наложи да търся по тези критерий.
например: кой има тоалетна
а търсенето пак ще е чрез checkbox.
т.е. ще получавам от web form нещо такова: 3, 4, 23
след което ще го сравнявам с даните от таблицата
т.е. от това поле.
Но може би си прав
Re: Kak ???
Много неподходящо си избрал типа на данните.
Трябва да е set, така ще ти е по-лесно за извършване на манупулации. Прочети малко за този тип данни.
__________________________________
Пътят към ада е осеян с добри намерения
Трябва да е set, така ще ти е по-лесно за извършване на манупулации. Прочети малко за този тип данни.
__________________________________
Пътят към ада е осеян с добри намерения
Re: Kak ???
xmmm, ave ne znam, Stan, set e malko 6lehterski tip danni spored mene. Kak normalizira6 tablici sys set?
"Така е то", казват тралфамадорците, когато някой умре
"Така е то", казват тралфамадорците, когато някой умре
Re: Kak ???
Ами никак. То даже и в първа нормална форма не може да бъде, ама така мисля, че ще му е по-лесно на човека. Като понапредне с материала и тези работи ще научи. Варианта на salle е доста по-добър по отношение на нормализацията, но според мен е малко по-сложен като структура. За протокола: salle e професионалист, що се отнася до теротия на базите данни и MySQL а аз просто ентусиаст.
__________________________________
Пътят към ада е осеян с добри намерения
__________________________________
Пътят към ада е осеян с добри намерения
Re: тип данни SET
[линк]
__________________________________
Пътят към ада е осеян с добри намерения
__________________________________
Пътят към ада е осеян с добри намерения
Re: Kak ???
oki, syglasen sm s tebe 4e za toq slu4ai vyr6i rabota. Ama v kraina smetka za negovata tablica nqma li i edin char(100) da re4em da svyr6i rabota? Vqrno 4e po SET se tyrsi po-byrzo, ama na mene vse mi se struva po-lesno za 4oveka da izpolzva edno eregi(), otkolkoto da upravlqva danni kato set. Ne znam, vypros na vkus moje bi, no ako skorostta ne me vylnuva mnogo bih predpo4el nqkakyv char.
I want to walk into the lights
I want to walk into the lights
Re: еее не чак ...
По скоро съм вманиачен на тема индексиране ... и понеже SET във WHERE няма как де се нидексира затова направо го пропускам.
Което Stan ще се съгласиш, че не е съвсем професионално.
Самият факт пък, че знаеш доброите и лошите страни на нормализацията пък и самият термин те изважда от категорията на ентусиастите
Да знаеш, че е завинаги.
Пък и първото питане на beginer не споменаваше MySQL а SET дали изобщо го има в ANSI 92 ?
salle.online.bg/sig
Което Stan ще се съгласиш, че не е съвсем професионално.
Самият факт пък, че знаеш доброите и лошите страни на нормализацията пък и самият термин те изважда от категорията на ентусиастите
Да знаеш, че е завинаги.
Пък и първото питане на beginer не споменаваше MySQL а SET дали изобщо го има в ANSI 92 ?
salle.online.bg/sig
Re: еее не чак ...
Вярно е това, че човека не спомена MySQL - моя грешка а SET-a не е в ANSI-то,
но пък в повечето СУБД го има реализиран. Друг е въпроса кога трябва да се използва и кога не.
Що се отнася до индекситането те разбирам напълно, това все пак е най-важния метод за ускоряване изпълнението на заявките.
__________________________________
Пътят към ада е осеян с добри намерения
но пък в повечето СУБД го има реализиран. Друг е въпроса кога трябва да се използва и кога не.
Що се отнася до индекситането те разбирам напълно, това все пак е най-важния метод за ускоряване изпълнението на заявките.
__________________________________
Пътят към ада е осеян с добри намерения
Re: Kak ???
po-dobre si parse-ni stringa koito polu4awa6 ot checkbox-owete i si naprawi otdelna tabliza (id, service). Sys wseki ezik move da se razdeli mnogo lesno edin string ot tip "1,3,5,6,7" na otdelnite 4isla (a pyk Cold Fusion-a si poddyrva dave tip spisyk :)))).
posle kato tyrsi6 i move da izpolzwa6 podadeniq string ("1,4,5") i da go dade6 naprawo na IN :)
posle kato tyrsi6 i move da izpolzwa6 podadeniq string ("1,4,5") i da go dade6 naprawo na IN :)