首页 > 解决方案 > 从mysql数组中选择数据

问题描述

在我的 MySQL 数据库中,我有一个名为的数组列(文本类型)friend_array,其中变量usernames用逗号 (,) 分隔

例如:user1 friend_array单元格中的值是:

prevert,
borges,
eliot,
wislawa,
derek,
hebert,
pushkin,
plath,
donnelly,
ahlberg,
ginsberg,
amiri,
rilke,
mckay,
aam,
wowen,
larkin,
michaux,
moliver,
dickinson,
rumi,
reverdy,
brecht,
tate,
cad,
cummings,
dianeb,
sexton,
redson,
pessoa,
transtromer,
shakespeare,
mistral,
sodergran,
bukowski,
auden,
tedhu,
ashton,
tomandrews,
gwallas,
updike,
ashbery,
jenkins,
rhass,
whitehead,
montale,
ritvo,
snyder,
kooser,
simic,
koertge,
nemerov,
aporter,
reichhold,
rduncan,
meretop,
kkoch,
strand,
kahf,
asha,
keats,
pinter,
santoka,
opaz,
breton,
schreiner,
bataille,
cedo,
galeano

现在如何在php中分别选择每个朋友以便查看朋友列表而不重复

提前致谢

标签: phpmysql

解决方案


您应该创建一个friend如下所示的新表,例如:

friend
===============
id_user | username

有了primary keyon id_user1 + username,这样就可以得到你所有的朋友user1SELECT username FROM friend WHERE id_user = :id_user1;。正如评论中所说,让这种字段包含一个包含多个值的字符串是非常糟糕的做法。

现在回答这个问题,如果您设法获得friend_array值(如您所说,一个具有多个用户名的字符串,用逗号分隔),您可以执行以下操作:

$data = explode(',', $your_friend_array_string);

如果要删除重复项:

$data_unique = array_unique($data);

希望它有所帮助,但如果可能的话,首先要改变你存储数据的方式!


推荐阅读