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