In response to "窦德厚(ddh)" <doudehou@xxxxxxxxx>: > Hi, if I have such a table: > > t_ref_id t_data > -------------------- > 1 'abc' > 2 '321' > 1 'ddd' > 2 'xyz' > 9 '777' > ... > > > I want to get data with a special t_ref_id: > > SELECT t_data FROM THETABLE WHERE t_ref_id = '1'; > > I must use a while loop to extract the data (I'm using PHP): > > $rows = array(); > while (($row = pgsql_fetch_assoc($result) !== false) { > $rows[] = $row; > } > > And if there are many matched rows, such as many hundreds or thousands of > rows, I think such a loop maybe inefficient. You're wrong. It's pretty much the only way. The only way you can improve on that is to process that row immediately instead of copying it from $row to $rows[]. > How to do this in a more efficient way? Use a more efficient language, such as C, instead of PHP. -- Bill Moran Collaborative Fusion Inc. http://people.collaborativefusion.com/~wmoran/ wmoran@xxxxxxxxxxxxxxxxxxxxxxx Phone: 412-422-3463x4023