MYSQL IN语句返回错误的数据

时间:2013-11-26 17:39:17

标签: mysql sql

我正在尝试使用MYSQL语句IN从我的表中仅选择我需要的数据。例如:我有一个字段按ID分隔的类别用逗号分隔(7,1,10,25,20)。如果我使用此代码:

SELECT * FROM cancelamento WHERE ( motivos_int_id IN ( 7 ) )

我只得到以数字7开头的行。例如,如果该行的数据是8,7,14,则不会返回任何数据。即使我将代码更改为:

SELECT * FROM cancelamento WHERE ( motivos_int_id IN ( 7,8 ) )

我做错了吗?例如,我需要获取具有数字7的所有数据,而不管数字7的顺序如何。

2 个答案:

答案 0 :(得分:1)

您可以使用FIND_IN_SET

    SELECT * FROM cancelamento WHERE find_in_set(7 , motivos_int_id)

一点example here

答案 1 :(得分:0)

首先打印你的motivos_int_id, 检查你的id结构它可能就像这个(12,3,4,) 最后有附加的逗号,所以如果这个scenerio发生在php中使用rtrim()函数 并修剪你的右侧逗号,你的查询是正确的。

  

从tbl_name中选择*,其中id为IN(1,2,3)