Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 14:28 11.05.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Кад да ... в mySQLнови  
Автор desso__ (непознат )
Публикувано17.01.06 16:53



Здравейте,

Искам да направя един селект, но в една от колоните да mySQL да ми подава номера на реда.

Пример: select id,name,?num? as num from table;

id, name, num
-----------------
1 name 1
7 namme 2
22 name22 3
....

10x



Тема Re: Кад да ... в mySQLнови [re: desso__]  
Автор bira_more (бира)
Публикувано17.01.06 17:53



Ми слагаш си в таблизата autoincrement....

Bеer? Mоre?




Тема Re: Кад да ... в mySQLнови [re: bira_more]  
Автор desso__ (непознат )
Публикувано17.01.06 18:19



не става въпрос за INSERT, а за SELECT

искам mySQL да ми връща номера на реда ... ако сложа уникално ID (AUTOINCREMENT), това не ми е гаранция, че IDто ще ми е поредно, да не говорим, че SELECT-a може да не е подреден по ID...

Под номер на ред искам да кажа, примерно ако направя select ... LIMIT 0,10
първия ред да има: num=1, втория num=2, третия num=3
Съгласен съм, че това може да се изведе в скрипта извън MySQL примерно с PHP да си показвам номера на реда, но искам да направя оптимизация и ми трябва вариянт директно от MySQL да идва стойността....

благодаря ви предварително



Тема Не съм гуру ама си мислянови [re: desso__]  
Автор bira_more (бира)
Публикувано17.01.06 18:25



че дори да намериш начин да ползваш номера на реда, е кофти номер.
БД са направени да ти връщат каквото искаш, без значение как се пази, или съхранява.
Без значение на коя част на диска.....

Bеer? Mоre?




Тема таканови [re: desso__]  
Автор Dakota (erotoman)
Публикувано17.01.06 19:24



Виж

.

Everything louder than everything else...

Тема Re: Такова живитно нема ...нови [re: desso__]  
Автор salle (един такъв)
Публикувано17.01.06 23:56



Няма "номер на ред" в Релационния модел.
Таблиците са дефинирани като неподредени множества т.е. сървърът е в правото си да ги съхранява и показва в произволен ред. Произволен = какъвто намери за добре а не непременно случаен.

Ако нямаш ORDER BY клауза една и съща заявка изпълнена няколко пъти може да ти връща резултата всеки път в различна подредба.


Колкото до "номера на реда от резултата" това винаги е най-лесно да се прави в клиентската част. Просто така или иначе въртиш някакаъв цикъл за да обработиш редовете (дори и ако "обработката" се състои от единствен print()), а като въртиш цикъл какво по просто от това да сложиш и брояч



Тема Re: таканови [re: Dakota]  
Автор desso__ (непознат )
Публикувано18.01.06 12:12



10x a lot

Точно това търсех:

set @x := 0;
SELECT @x := @x+1 as num,ID, NAME FROM test;

Върши чудесна работа. Сега разбира се, се опитвам да го направя да е само в едно query

set @x := 0;
SELECT IF(@x iS NULL,@x := 0,1) as xx,@x := @x+1 as num,ID, NAME FROM test;

но нещо не се получава.... винаги IF връща, че @x е NULL...

пробвах и с SELECT CASE THEN още по голям мармалад :-)

ако някой измисли някоя брилянтна идея да пише! -:)

Поздрави



Тема Re: таканови [re: desso__]  
Автор desso__ (непознат )
Публикувано18.01.06 12:15



10x a lot

Точно това търсех:

set @x := 0;
SELECT @x := @x+1 as num,ID, NAME FROM test;

Върши чудесна работа. Сега разбира се, се опитвам да го направя да е само в едно query

SELECT IF(@x iS NULL,@x := 0,1) as xx,@x := @x+1 as num,ID, NAME FROM test;

но нещо не се получава.... винаги IF връща, че @x е NULL...

пробвах и с SELECT CASE THEN още по голям мармалад :-)

ако някой измисли някоя брилянтна идея да пише! -:)

Поздрави



Тема Re: Такова живитно нема ...нови [re: salle]  
Автор desso__ (непознат )
Публикувано18.01.06 12:21



salle,

Ясно е, че може да се направи извън mySQL....

Въпроса е принципен, ако не ме разбираш ..... :-) не коментирай..... и въобще защо ги даваш тези обяснения не мога да разбера, никой не пита за ORDER на записите и т.н.


ето такава заявка си търсех

set @x := 0;
SELECT @x := @x+1 as num,ID, NAME FROM test;

Поздрави



Тема Re: За да те разберат ...нови [re: desso__]  
Автор salle (един такъв)
Публикувано18.01.06 13:34



... трабва да обясниш какво имаш предвид.

Като кажеш:
"но в една от колоните да mySQL да ми подава номера на реда."

"номера на реда" може да се тълкува по различни начини.

А като ти е толкова ясно, че може да се направи в от страната на клиента защо въобще питаш?

Какъв е смисъла да товариш сървъра и връзката между сървъра и клиента с напълно излишна информация?




Страници по тази тема: 1 | 2 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.