如何将列值拆分为“IN”条件?

时间:2015-03-09 12:35:34

标签: mysql sql jdbc

假设我有一个表t1,它有一个列effecitive_game,它将存储名称和逗号(或其他一些预定的字符,如';'),以便我可以用来过滤

例如:列值为'game1,game2,game3'

我希望在JDBC中编写一个SQL,如:

"SELECT * FROM t1, WHERE "+ HERE_IS_A_PARAM_ + "IN " +" effecitive_game' //

如何将列值'game1,game2,game3'拆分为像''game1','game2','game3'这样的集合,以便我可以使用IN构建where条件?

1 个答案:

答案 0 :(得分:0)

您无需将逗号分隔值转换为任何内容。 使用FIND_IN_SET() MySQL函数

SELECT * FROM t1 WHERE FIND_IN_SET([SERACHINGFOR], [COMMASEPARATEDLIST])>0

如果你必须使用另一个分隔符(比方说&#39 ;;'),那么你必须欺骗系统。

SELECT * FROM t1 WHERE CONCAT(";",[SEPARATEDLIST],";") LIKE CONCAT('%;',[SEARCHFOR],';%')