我想从字段中获取数据,这是一串用逗号分隔的单词,并将每个单词保存为一个变量。之后,我想将存储的单词用于检索信息。在MySQL字段中,如何选择用逗号分隔的字符串中的单词?
这个例子是一个包含信息的字段:“Bob,Sue,Adam,Tim,Hank”我的目标是选择每个名称,使用逗号来检测每个不同的名称,并将每个名称保存为变量或更有效的数组,然后使用“for”命令或类似的方式显示每个人的相关信息。
我正在使用MySQLi命令,据我所知,这些命令记录不完整;然而,这是我的书指示我使用的。
我想从字段中获取数据,这是一串用逗号分隔的单词,并将每个单词保存为一个变量。之后,我想将存储的单词用于检索信息。在MySQL字段中,如何选择用逗号分隔的字符串中的单词?
这个例子是一个包含信息的字段:“Bob,Sue,Adam,Tim,Hank”我的目标是选择每个名称,使用逗号来检测每个不同的名称,并将每个名称保存为变量或更有效的数组,然后使用“for”命令或类似的方式显示每个人的相关信息。
我正在使用MySQLi命令,据我所知,这些命令记录不完整;然而,这是我的书指示我使用的。
的explode
功能其他答案建议将正常工作,但如果你在第二个表分开存放这些名字会更优雅。
那么,你现在有:
main
:id
,names
我建议:
main
:id
names
:main_id
,name
然后你可以检索的名字属于一个行与查询,如:
SELECT name FROM names WHERE id = $id
要添加属于某一ID,使用了一个名字:
INSERT INTO TABLE names (main_id, name) VALUES ($id, "$newname")
好的。我为我的困惑道歉。我必须创建一个工作的朋友列表。用户将访问一个配置文件并点击“添加”。这将增加用逗号分隔符点击用户姓名到clickee的“friends”字段。你的方法可以用这样的东西工作吗? –
单独的表格方法将使您的用例更容易。您只需在名称表中添加一个名称(请参阅扩展答案),而您现在必须检索字符串,添加一个新的以逗号分隔的名称,然后替换数据库中的字符串。 – mhelvens
谢谢你的回复。我会尝试你的方法。我之前完成了HTML和CSS,但PHP和MySQL是两种不同的动物。 –
您现在有值
$arrayList = explode(',', "Bob,Sue,Adam,Tim,Hank");
你可以在MySQL中使用find_in_set:
假设mysql字段“用户名”有这些值:“鲍勃说,苏,亚当,蒂姆,汉克”
$name="bob";
QUERY是
select * from TABLE_NAME where FIND_IN_SET('$name', username);
很酷! :-)我不知道这个功能。即便如此,我认为长远来看,不同的餐桌设计将更加稳健。 – mhelvens
yes :) mhelvens –
字段不应该包含“鲍勃说,苏,亚当,蒂姆,汉克”。这应该是子表中的5行。 – gbn