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

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

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

Тема Има ли как?нови  
Автор Lizard (приятел)
Публикувано20.08.01 09:44



исма ми се да напиша нещо такова на MySQL:

SELECT @t:= concat(firstname," ", lastname)
FROM table1
WHERE @t LIKE "%ен Ива%" OR @t LIKE "%сто Петр%"

или
SELECT concat(firstname," ", lastname) AS t
FROM table1
WHERE t LIKE "%ен Ива%" OR t LIKE "%сто Петр%"

обаче и двете не работят
някаква идея какво мога да направя?
Предварително благодаря!



Тема Re: Има ли как?нови [re: Lizard]  
Автор salle (Един такъв)
Публикувано20.08.01 14:19



Елементарно :)

select concat(firstname, " ", lastname) from table1 where concat(firstname, " ", lastname) like "%ен Ива%" or concat(firstname, " ", lastname) like ...

Вътрешните промеливи са малко странно нещо и по средата на select трудно се използват

2-рия вариант можеш да го постигнеш със GROUP BY ... HAVING

Губи ти се логиката на реда в който се изпълнява SELECT. А той е:
1. Първо се обработват JOIN условията независимо дали са описани във WHERE или с JOIN
2. После се обработва WHERE.
т.е. във WHERE може да се появи само име, което реално съществува в таблиците или произволна комбинация от функции и реални имена.
3. След това се обработва SELECT
т.е. извличат се реалните стойности и се генерират тези които са указани и евентулано се присвояват на alias-и
4. След това се обработва GROUP BY и съответно се пресмятат "групираните" колони в SELECT частта
5. Чак тогава се обработва HAVING
Именно затова в HAVING може да се появява всеки alias
6. Накрая идва ORDER BY т.е. и тук можеш да използваш генериран alias
7. Съвсем накрая идва LIMIT x,y


Помисли обаче дали това което питаш въобще е разумно.
Подобен SELECT ще работи отвратително бавно.
Какво точно се опитваш да извадиш от таблицата?

Linux is like a wigwam - No Windows, No Gates, Apache inside


Тема Re: Има ли как? [re: salle]  
Автор Lizard (приятел)
Публикувано20.08.01 17:31



В заявката ми има много CONCAT(...) LIKE "..." , та ми се искаше да не го присвоя на някаква променлива за да не конкатенира много пъти едно и също за всеки LIKE



Тема Re: Има ли как?нови [re: Lizard]  
Автор@user_O (Нерегистриран)
Публикувано21.08.01 19:24



Ти едва ли не искаш да обработваш заявки като google.
Това обаче се постига със съхранени процедури и доста повечко код.
Доколкото съм забелязал ,обаче ,разчиташ на mySQL , а те съхранени процедури няма да пуснат скоро...



Тема Re: Има ли как?нови [re: Lizard]  
Автор Maйkъл ()
Публикувано22.08.01 06:53



единсвеното възможно е да си направиш view върху first+' '+lats name
и да работиш върху него със стандартният select на mysql




Всички темиСледваща тема*Кратък преглед
Клуб :  


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

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