Hi! On Nov 17, boris hajduk wrote: > Saturday, November 17, Bruce Ferrell wrote: > > BF> SELECT position, title FROM WHERE position1 IN (1...200) OR position2 IN > BF> (1...200); > > no, i wasn't clear enough, let's try it again. > > the table book contains : > > |-- title -----|--position1--|--position2--|--lots of other fields--- > | bravenewworld| 0 | | > | foundation | 1 | | > | shortstories | 2 | 3 | > | neuromancer | 4 | 7 | > | hyperion | 8 | 6 | > | salem | 5 | | > | lovedeath | 11 | 9 |
And what's the problem ? $_=join(",",(1..200)); $result=mysql_query( << AAAA ); SELECT IFNULL(position2,position1) as position,title WHERE position1 IN ($_) OR position2 IN ($_) ORDER BY position; AAAA You may change IFNULL to IF, if you use another 'dummy' value. Still, it won't be very fast as MySQL cannot use _two_ indexes at one. If you don't mind using MySQL 4.0 you can use UNION: $_=join(",",(1..200)); $result=mysql_query( << AAAA ); SELECT position1 as position,title WHERE position1 IN ($_) UNION SELECT position2 as position,title WHERE position2 IN ($_) ORDER BY position; AAAA This way MySQL will resolve both SELECT with indexes. Regards, Sergei -- MySQL Development Team __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Sergei Golubchik <[EMAIL PROTECTED]> / /|_/ / // /\ \/ /_/ / /__ MySQL AB, http://www.mysql.com/ /_/ /_/\_, /___/\___\_\___/ Osnabrueck, Germany <___/ --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php