March 24, 2012

IF Statement in MySQL, using THEN and ELSE

Question by max_

I am testing out IF statements in MySQL for the first time and I am coming across an error.

I am trying to firstly, find out how many rows are in the table, then depending on whether the count is less than or equal to five, return all of the rows in the table, or if it isn’t, return all posts in the range used within the LIMIT clause.

The error I am receiving is as follows;

You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near ‘IF SELECT COUNT(*) FROM Posts <= 5 THEN SELECT * FROM Posts
ELSE SELECT * FR’ at line 1

Please can you tell me where I am going wrong?

Max.

$query = mysql_query(
    "IF SELECT COUNT(*) FROM `Posts` <= 5 
     THEN 
         SELECT * FROM `Posts` 
     ELSE 
         SELECT * FROM `Posts` LIMIT $from, $limit") 
     or die(mysql_error());

Answer by Starx

you don’t need to do this. Mysql handles this automatically, just use

$query = "SELECT * FROM `Posts` LIMIT $from, $limit";

Author: Nabin Nepal (Starx)

Hello, I am Nabin Nepal and you can call me Starx. This is my blog where write about my life and my involvements. I am a Software Developer, A Cyclist and a Realist. I hope you will find my blog interesting. Follow me on Google+

...

Please fill the form - I will response as fast as I can!