有什么办法,我可以将字段值(逗号分隔)放入数组或临时表中。
例如:我的字段following
的值为3,7,23,45
我想让他们在不使用PHP的情况下进入数组,或者进入临时表。
因为我需要根据这些值进行一些联合查询。
感谢任何帮助
感谢
我的表名是:鞋子 字段名称如下样本表值就像这些
+----------+-----------+ userId following +----------+-----------+ 1 5,7,8,12 2 5,2,1,67
现在,当我搜索userId 1时,我希望将值5,7,8,12
放入数组或临时表中。
答案 0 :(得分:0)
虽然不是特别快,但可以。最好的解决方案是重新设计数据库,将逗号分隔列表移动到另一个表中,每个逗号分隔元素都有一行。
但是,如果你想要一个SQL方法来做,那么类似下面的内容将会这样做(这依赖于一个名为整数的表,其中一个列名为i,其中10行的值为0到9)。
SELECT DISTINCT shoes.userId , substring_index(substring_index(shoes.FollowingIdString, ',', anInt), ',', -1) AS SplitField
FROM shoes,
(SELECT a.i+b.i*10+c.i*100 AS anInt
FROM integers a, integers b, integers c) Sub1
HAVING SplitField IS NOT NULL
答案 1 :(得分:0)
假设你有一个表PersonList,它有多列,这是你要加入的表,以获取关注者列表的名称。例如
代码PersonTable
ID Name
1 AAA
2 BBB
有一个名为FIND_IN_SET的mysql函数,例如
SELECT a.userID, GROUP_CONCAT(b.Name)
FROM Follower a
INNER JOIN Person b
ON FIND_IN_SET(b.id, a.following) > 0
GROUP BY a.userID