Friday, 15 January 2010

php - mysql order by max matches field value -



php - mysql order by max matches field value -

i have total 3 table like

table:links id | name | cat_id | weight 1 | test1 | 1 | 5 2 | test2 | 1 | 10 3 | test3 | 1 | 15 4 | test4 | 1 | 2 table:tags id | name | link_id 1 | tag1 | 1 2 | tag2 | 1 3 | tag1 | 2 4 | tag2 | 2 5 | tag1 | 3 6 | tag2 | 4

here

test1 have tags like: tag1,tag2 test2 have tags like: tag1,tag2 test3 have tags like: tag1 test4 have tags like: tag2

so want closest tag match form test 1

so result should be: test2,test3,test4

depend on tag match , weight

try this:

select distinct(l.name) link links l inner bring together tags t on l.id = t.link_id , l.id <> 1 grouping t.link_id order count(t.link_id) desc

sqlfiddle demo

php mysql

No comments:

Post a Comment