0

有什么办法,我可以将字段值(逗号分隔)放入数组或临时表中。

例如:我有following带值的字段3,7,23,45

我想在不使用 PHP 的情况下将它们放入一个数组中,或者放入一个临时表中。

因为我需要根据这些值进行一些联合查询。

任何帮助表示赞赏

谢谢

我的表名是:鞋子字段名如下

样本表值是这样的

   +----------+------------+

   用户 ID 关注
   +----------+------------+
    1 5,7,8,12
    2 5,2,1,67

现在,当我搜索 userId 1 时,我想将值5,7,8,12放入数组或临时表中。

4

2 回答 2

0

假设您有一个包含多个列的表 PersonList,这是您要加入以获取关注者列表名称的表。例如

人表

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
于 2013-01-03T10:53:52.340 回答
0

这是可能的,虽然不是特别快。最好的解决方案是重新设计数据库,将逗号分隔的列表移动到不同的表中,每个逗号分隔的元素对应一行。

但是,如果您想要一种 SQL 方式来执行此操作,那么类似以下的操作将执行此操作(这依赖于有一个名为 integers 的表,其中包含一个名为 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
于 2013-01-03T10:18:28.447 回答