我想在mysql数据库中获取逗号分隔的记录

时间:2014-12-22 13:05:44

标签: mysql sql select in-operator find-in-set

在我的数据库表中,我有6列ID(自动),标题,新闻,图像,类型 我写这个查询。

select id,title,image 
from add_news 
where FIND_IN_SET('Travel','Music',type) 
ORDER BY id DESC

我收到此错误

Incorrect parameter count in the call to native function 'FIND_IN_SET'

2 个答案:

答案 0 :(得分:3)

我猜测type是逗号分隔的列表。这是一种非常糟糕的数据格式,你应该有一个单独的表,每种类型和文章都有一行。

但是,考虑到格式,正确的语法是:

select id, title, image
from add_news
where find_in_set('Travel', type) > 0 or
      find_in_set('Music', type) > 0
order by id desc;

答案 1 :(得分:1)

使用 IN 运算符代替 FIND_IN_SET()

试试这个:

SELECT A.id, A.title, A.image 
FROM add_news A
WHERE A.type IN ('Travel', 'Music')
ORDER BY A.id DESC