2

mysql 是否可以在 varchar 列中使用 IN 语句

就我而言

SELECT `custids` FROM user WHERE id = 1;

它返回 custids 列,它是 varchar,值以逗号分隔,如 1,2,3

当我运行这个查询

SELECT * FROM `user` WHERE user.id IN(`custids`);

它没有像我预期的那样运行。

实际上我要像这样运行查询:

SELECT * FROM `user` WHERE user.id IN(1,2,3);

但我认为它的运行方式如下:

SELECT * FROM `user` WHERE user.id IN('1,2,3');
4

3 回答 3

3

如果您无法使用 1,2,3 而不是 '1,2,3' 构建查询,您可以尝试使用 FIND_IN_SET

http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_find-in-set

 SELECT * FROM `user` WHERE FIND_IN_SET(user.id, '1,2,3') IS NOT NULL;
于 2012-06-06T07:13:50.737 回答
1

尝试

    SELECT * FROM `user` WHERE user.id in('1','2','3');
于 2012-06-06T07:10:28.000 回答
0

我认为问题是,我们可以使用或不使用吗?而不是寻找替代品?在我的查询中,我正在使用CASE子句:-

case
when customer_location.city in('bangalore','Mumbai')
              then cond1
              else cond2
              end

所以它也适用于 Varchar,但你需要用双引号写。

于 2016-12-02T08:35:52.423 回答