如何在mysql IN()函数中使用String?

时间:2016-04-06 13:14:03

标签: mysql

我的数据库表中有一个名为“user_id”的VARCHAR(255)字段,我在其中存储逗号分隔的用户ID,如234,235。

我的查询中有一个内部查询,如下所示's'是我的表别名:

(SELECT group_concat(concat(first_name,' ',last_name)) from users where user_id IN (s.user_id)) as user_name

现在我得到了s.user_id值:'234,235' 所以在结果中我只得到第一个用户的名字。我希望两个用户的名字逗号分开。 (我想=>>('234','235')或(234,235)这样它在IN()函数中起作用)

使用FIND_IN_SET()函数是不可行的,因为我的查询太长了。

1 个答案:

答案 0 :(得分:0)

将ID存储在您需要引用的逗号分隔字符串中是错误的设计。将数据标准化并以数据库本机支持的方式存储它会好得多。

也就是说,您需要在字符串中查找用户ID,因此一个解决方案是正则表达式。 这很慢,我认为值得在单独的表/列中重新组织您的ID。

getPathTo(jQuery('h3').first().get(0))

这会将您的ID与字符串两侧或开头或结尾处的逗号进行匹配。