I am making a simple filtering system for visitor that the criteria they choose is either in "column1" or "column2".
I had a thread regarding to sorting few days ago and I had been told that I can use the clause "IFNULL" and "AS" to solve the problem, but when it comes to filtering it does not work...
anyway my SQL statement is:
PHP Code:
SELECT *, IFNULL(column1,column2) AS finalcolumn FROM mytable WHERE finalcolumn='$visitor_criteria'
In most SQL flavors, you can not expect an aliased column to behave like a real column. This would drastically change the execution plan of MySQL in an undesirable way. The work-around is to replace the alias with the expression, or to store the expression (per row in a stored procedure) in some variable.
Try doing it like this:
PHP Code:
$resource = mysql_query(sprintf( "SELECT *, IFNULL(column1,column2) AS finalcolumn FROM mytable WHERE IFNULL(column1,column2)='%s'", mysql_real_escape_string($visitor_criteria)));
edit: I think you might mean to use COALESCE instead of IFNULL
I use (, ; : -) as I please- instead of learning the English language specification: I decided to learn Scheme and Java;
but now i am converting the obsolete mysql to mysqli (which is such a pain to me), so i guess the php code would be like?
<PHP>
$resource=$connection->query(sprintf(
"SELECT *,
IFNULL(column1,column2) AS finalcolumn
FROM mytable
WHERE IFNULL(column1,column2)='%s'",
mysqli_real_escape_string($link, $visitor_criteria)));
</PHP>
ps: i use if "IFNULL" because i want the criteria to be: if column1 is not null then use column1, otherwise use column2, which always contain a value
also, is there any websites that i can learn mysqli command? i found that php.net is sometimes intimidating
<PHP>
$resource=$connection->query(sprintf(
"SELECT *,
IFNULL(column1,column2) AS finalcolumn
FROM mytable
WHERE IFNULL(column1,column2) like '%s'",
mysqli_real_escape_string($link, $visitor_criteria)));
</PHP>
If both column1 and column2 return 'NULL' in some row in my database, will the SQL command still work???
I have all the above code run without error but the data shows no result and i suspect it has something to do with the IFNULL (or COALESCE that i later use)....
Bookmarks