【发布时间】:2011-10-16 02:33:41
【问题描述】:
我正在对一张表进行简单的 LIKE 搜索,但由于某种原因,我似乎无法获得多个结果。在下面的查询示例中,我包含了诸如“永不退缩”和“灵魂冲浪者”之类的词,但我只得到了一部电影。我的数据库中有这些电影,还有很多其他的。
这是查询:
SELECT movies . * , GROUP_CONCAT( categories.name ) AS categories, GROUP_CONCAT( categories.id ) AS categories_id
FROM movies
LEFT JOIN movies_categories ON ( movies.id = movies_categories.movie_id )
LEFT JOIN categories ON ( movies_categories.category_id = categories.id )
WHERE movies.movie_title LIKE '%surfer%'
OR movies.movie_title LIKE '%date%'
OR movies.movie_title LIKE '%never%'
OR movies.movie_title LIKE '%back%'
OR movies.movie_title LIKE '%down%'
OR movies.movie_title LIKE '%surfer%'
OR movies.movie_title LIKE '%soul%'
OR movies.movie_title LIKE '%the%'
OR movies.movie_title LIKE '%transporter%'
LIMIT 0 , 30
我在想这个查询一定有问题,否则它会返回所有结果?我知道有些词在like 子句中重复,但这不重要。我错过了什么吗?
修好了!
我使用的 group_concat() 函数导致查询只返回一个结果,并将所有电影的类别和 category_id 连接起来。我刚刚删除了 group_concat(),它现在可以工作了。
【问题讨论】: