准备mysql行以在IN()子句中使用

时间:2012-07-17 13:17:23

标签: mysql search

我需要在一组存储在表中的数值中找到包含特定数字的行。我正在使用mysql的WHERE IN()函数,但我遇到了正确格式的问题。

基本上我有以下查询:

SELECT id,category, text
FROM ws_cat
WHERE '11' IN (category) 

类别字段为VARCHAR,如下所示:

id    category
1     11
2     12,11
3     1,13,9

所以我需要在这种情况下找到id为1和2的行。不幸的是它不起作用,我猜它是因为缺少引号,但是使用QUOTES()重新格式化或只是将category的格式更改为'12','11'之类的所有想法都不会也没工作。只要它有效,两者都可能对我有用......

1 个答案:

答案 0 :(得分:1)

使用FIND_IN_SET功能:

SELECT id, category, text
    FROM ws_cat
    WHERE FIND_IN_SET('11', category) <> 0;