在Field中找到Key(一个数字) - Mysql

时间:2013-04-29 10:00:11

标签: mysql select

我在记录中搜索字段中的密钥时遇到问题。

  • disProdlist =包含1个或多个密钥,exp(1,2,3,9,...等)。

我喜欢在“disProdlist”字段中显示哪条记录包含密钥“9”。

这是我的问题:

SELECT disProdName FROM discount WHERE FIND_IN_SET('9','disProdlist');

但是,它没有返回任何结果。

所以,我尝试了一个实验,我尝试将“disProdlist”更改为只有一个键,并且它成功返回了结果。但是,我希望“disProdlist”包含更多的密钥。

那么,任何人都可以帮我解决问题吗?

2 个答案:

答案 0 :(得分:1)

试试这个

   SELECT disProdName FROM discount WHERE FIND_IN_SET('9','1,2,3,9,..and so on');

   SELECT disProdName FROM discount WHERE FIND_IN_SET('9',disProdlist);

如果disProdlist是一列

HERE A DEMO

答案 1 :(得分:1)

如果disProdList是字段的名称,则不应将其放在查询中的单引号之间。

SELECT disProdName FROM discount WHERE FIND_IN_SET('9','disProdlist');

此请求不正确。第二个论点必须是一个字符串列表(由doc所述的“,”字符分隔的子字符串组成的字符串。)

然后是正确的查询:

SELECT disProdName FROM discount WHERE FIND_IN_SET('9',disProdlist);

规定disProdlist是正确格式的字符串(VARCHAR,TEXT,...)或类型SET