|
Тема |
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
|
| |
|
|
|