|
Тема
|
Има ли как?
|
|
Автор |
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 , а те съхранени процедури няма да пуснат скоро...
| |
|
единсвеното възможно е да си направиш view върху first+' '+lats name
и да работиш върху него със стандартният select на mysql
| |
|
|
|
|