PHP:从MySQL中的内爆数组中选择一个值
我有一个标记系统,其中标记作为内爆数组存储在一行中,如下所示: “值1、值2、值3等…” 我正在尝试创建一个标签搜索页面,但我不知道如何将其转换为数组,以查看有人搜索的特定标签是否在数组中(因为我无法在使用SELECT时分解它) 有人能帮忙吗?还是不可能PHP:从MySQL中的内爆数组中选择一个值,php,mysql,arrays,select,tags,Php,Mysql,Arrays,Select,Tags,我有一个标记系统,其中标记作为内爆数组存储在一行中,如下所示: “值1、值2、值3等…” 我正在尝试创建一个标签搜索页面,但我不知道如何将其转换为数组,以查看有人搜索的特定标签是否在数组中(因为我无法在使用SELECT时分解它) 有人能帮忙吗?还是不可能 谢谢你们的帮助,它成功了 从数据库中读取$tags\u str 将字符串转换为数组: <?php $tags_str = "value1, value2, value3"; $tags_arr = explode('
谢谢你们的帮助,它成功了 从数据库中读取$tags\u str 将字符串转换为数组:
<?php
$tags_str = "value1, value2, value3";
$tags_arr = explode(', ', $tags_str);
?>
然后使用PHP函数搜索数学。从数据库中读取$tags\u str 将字符串转换为数组:
<?php
$tags_str = "value1, value2, value3";
$tags_arr = explode(', ', $tags_str);
?>
然后使用PHP函数搜索数学。您可以在select查询中使用“LIKE”
SELECT row FROM table WHERE tag LIKE '%search_value%'
您可以在select查询中使用“LIKE”
SELECT row FROM table WHERE tag LIKE '%search_value%'
有一个名为
FIND_IN_SET
的mysql
函数,它对逗号分隔的字符串进行操作。
例如:
SELECT * FROM posts WHERE FIND_IN_SET('some_tag', post_tags)>0
这里的文档:有一个名为
FIND\u IN\u SET
的mysql
函数,它对逗号分隔的字符串进行操作。
例如:
SELECT * FROM posts WHERE FIND_IN_SET('some_tag', post_tags)>0
这里的文档:我认为更好的方法是规范化数据,将标记移动到单独的表中,然后将标记连接到实体中。搜索将快速且简单=)我认为更好的方法是规范化数据,将标记移动到单独的表中,然后将标记连接到实体中。搜索将快速而简单=)使用
tags {
object_id
tag_id
}
或者,如果你懒惰,就去做吧
UPDATE tags = CONCAT(",", tags, ",") FROM table
然后
SELECT * FROM table WHERE tags LIKE '%,selected_tag,%'
使用
tags {
object_id
tag_id
}
或者,如果你懒惰,就去做吧
UPDATE tags = CONCAT(",", tags, ",") FROM table
然后
SELECT * FROM table WHERE tags LIKE '%,selected_tag,%'
如果你有例如“猫粮”、“猫粮超级粉丝”这样的标签,这将失败。如果你有例如“猫粮”、“猫粮超级粉丝”这样的标签,这将失败。不要忘记接受任何有帮助的答案。不要忘记接受任何有帮助的答案。