[PHP-DB] Re: MySQL: Random select with specific count of a column

2004-06-30 Thread Rui Cunha
Hi Torsten, 

until now,the best i could get was getting 6 random rows...still working on 
ensuring to retrive just 2 rows for category...meanwhile,you can solve the 
problem easily with a php loop trough the following query: 

select field_id , language , category
from yourtable
where language = 'de'
group by category , field_id
order by category , rand()
limit 6; 

PS1: i'm considering you're using just one table and my table structure is 
as follows: yourtable (field_id , language, category).
in case you're using more than 1 table, just add the required joins... 

hope this helps. 

Rui Cunha 


Torsten Roehr writes: 

Pablo M. Rivas [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]
Hello Torsten, 

 This is one, but I think you can find another one:
 Supose your table is called tablename 

 select * from tablename as a left join tablename as b on
 a.category = b.category and a.nameb.name and
 a.language=b.language where a.language='de' and b.name is not
 null group by a.category
Hi Pablo, 

thanks for your help. Unfortunately it's always returning the same row for
each category (maybe because of the group by) and only one row for each
category. I need to select 2 random rows for each category. Any more ideas? 

Thanks, Torsten 

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[PHP-DB] Re: MySQL: Random select with specific count of a column

2004-06-30 Thread Torsten Roehr
Rui Cunha [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]
 Hi Torsten,

 until now,the best i could get was getting 6 random rows...still working
on
 ensuring to retrive just 2 rows for category...meanwhile,you can solve the
 problem easily with a php loop trough the following query:

 select field_id , language , category
 from yourtable
 where language = 'de'
 group by category , field_id
 order by category , rand()
 limit 6;

 PS1: i'm considering you're using just one table and my table structure is
 as follows: yourtable (field_id , language, category).
 in case you're using more than 1 table, just add the required joins...

 hope this helps.

Hi Rui,

thank you very much for your efforts. I guess I have to do seperate queries
(as you suggested) for each category and then join the results.

Thanks again and best regards,

Torsten

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DB] Re: MySQL: Random select with specific count of a column

2004-06-30 Thread franciccio
I suggest to first analize the problem and then go through the query, php
coding  ...etc etc

In the table u have only one superkey which is also a key and it is made of
the three fields (attributes) 'category', 'language' and ' name'. You should
consider to look for a prymary key randomly, toghether with some restriction
in the search. Something like select the pryimary key from the table where
'category' equals a number(1, 2,3,n) and 'name' equals some random
criterium generated number. A random criteria could be generating a random
variables between the ascii code representing the alphabet letters (from 97
to 122 to cover a,b,c,...z).
You need to do some work before u can get an executable code here.
Hope can open a road
Bye


Torsten Roehr [EMAIL PROTECTED] ha scritto nel messaggio
news:[EMAIL PROTECTED]
 Hi,

 I've got the following table:

 categorylanguagename
 1   de  a
 1   de  b
 1   de  c
 2   de  a
 2   de  b
 2   de  c
 3   de  a
 3   de  b
 3   de  c
 ...
 1   en  a
 1   en  b
 1   en  c

 I would like to select 6 random rows where the language is 'de' AND make
 sure that I will always have 2 rows of EACH category in my result set:
 1   de  b
 1   de  c
 2   de  a
 2   de  c
 3   de  a
 3   de  b

 Any help greatly appreciated.


 Thanks and best regards,

 Torsten Roehr

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php