我有一个MEDIUMTEXT列,它包含来自goup_concat的值,形式为INT,INT,INT。我们可以称之为Concatenated_IDs
字符串的长度可以是1 int或更多。
我需要将其分解为原始值以某种方式能够执行诸如
之类的操作SELECT
table_country.name
FROM
table_country
WHERE
table_country.country_id IN (
SELECT
Concatenated_IDs
FROM
table_targeted_countries
WHERE
table_targeted_countries.email LIKE "%gmail.com")
并获取用户使用gmail地址目标注册的国家/地区名称。
我已经考虑将中间文本扩展为INT,为每个int创建一行,有点像反向concat,但我猜它需要一个大的过程
编辑:重新制定的问题名称
答案 0 :(得分:4)
您应该规范化该表,因此这些连接的ID存储在一个单独的表中,每个记录一个id。但与此同时,您可以使用mysql的find_in_set()
函数:
SELECT ...
WHERE FIND_IN_SET(table_country.country_id, Concatenated_IDs) > 0
相关文档:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set