At 9:53 AM +1100 2000-01-10, Albert Ng wrote:
>Well I was hoping that I can use variables to
>find the size of a table so that I can display only
>the last few rows of the table by using limit since
>I can't do a limit -10 to signify I want it to go from
>the bottom of the records. And without sub-query,
>looks like my only choice is to do 2 sql's and
>use a local variable in my program. sigh....oh,
>I can't upgrade to 3.23 for various reasons.
Well, I just tried doing what you want to do under 3.23.8,
and it doesn't appear to be possible anyway. I tried
setting a variable to the number of rows in a table like this:
SELECT @a:=COUNT(*) FROM tbl_name;
That worked. Then I tried getting the last few rows like this:
SELECT * FROM tbl_name LIMIT @a-10, 10;
That didn't work (syntax error at '@a').
Then I tried setting @a directly with a SET @a:=num statement,
SELECT * FROM tbl_name LIMIT @a, 10;
Still get a syntax error at '@a'.
So my question is: in what contexts can you use user variables.
In a SET statement, clearly. Also in the selection list for a
SELECT statement. And I've been able to use them in the WHERE
clause as well. But what are the actual rules governing where you
can use them?
Paul DuBois, paul@stripped