Дали може?

6 отговора 247 прегледа
#1

Дали може?

исма ми се да напиша нещо такова на 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 "%сто Петр%"

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

Отговор
в отговор на Lizard #2

Re: Дали може?

Със HAVING вместо WHERE ще върви... само че CONCAT(firstname," ", lastname) AS flname и после HAVING flname....

е чуствам, ще ми се карат за тоз съвет /btw да, знам как ще работи/

ViruS

Редактирано от ViruS на

Отговор
в отговор на Lizard #3

Re: Дали може?

Ami siguren li si che znakyt @ ne ti pravi problemi?

Отговор
в отговор на Alien #4

Re: Дали може? :)

:))

@varname
е вътрешна променлива - MySQL разширение на SQL

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на Lizard #5

Re: Дали може?

Mojesh da polzvash i neshto ot roda na full text search. ne sa msiguren dali shte ti svyrshi rabota - myrzi me da probvam sega. No kato cheta documentaciqta moje i da stane

Отговор
в отговор на Lizard #6

Re: Дали може?

NOTE: In a SELECT statement, each expression is only evaluated when it's sent to the client. This means that in the HAVING, GROUP BY, or ORDER BY clause, you can't refer to an expression that involves variables that are set in the SELECT part. For example, the following statement will NOT work as expected:

SELECT (@aa:=id) AS a, (@aa+3) AS b FROM table_name HAVING b=5;

The reason is that @aa will not contain the value of the current row, but the value of id for the previous accepted row.


imai go v predvit tova

Отговор
в отговор на Lizard #7

Re: Дали може?

a zashto tova ne go napravish po prostiq nachin :)))))

SELECT concat(firstname," ", lastname) AS t
FROM table1

where firs.. like "%en" and last.. like "Iva%" or ...............
vmesto
WHERE t LIKE "%ен Ива%" OR t LIKE "%сто Петр%"

Отговор