2

mysqlでINステートメントをvarchar列で使用することは可能ですか?

私の場合

SELECT `custids` FROM user WHERE id = 1;

varchar である custids 列を返し、値は 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 に答える