php - 从 mysql 表中的每一行中删除重复单词的最佳方法

标签 php mysql string

我有一个 mysql 表,其中每一行可以有任意数量的逗号分隔的单词。例如:

TABLE words
"test, dog, fun, yellow, quick, yellow"
"jogging, academic, fun, jogging, shoulder"
"shoulder, happy, flower, shoulder, shoulder"

我想删除每一行中的重复单词。因此,例如,上面将变为:

TABLE words
"test, dog, fun, yellow, quick"
"jogging, academic, fun, shoulder"
"shoulder, happy, flower"

(请注意,我只需要自己删除每行中的重复项。我不需要删除所有行之间的重复项。)

关于实现此目标的最佳方法有什么建议吗?有没有比在表中一次一行地选择然后更新更好的方法?

预先感谢您的帮助。

最佳答案

这更适合在 SQL 之外使用。如果您尝试使用查询来查询字符串,那将不会很漂亮。我推荐:

  • SELECT每一行
  • 执行 $val = explode(', ',$column);
  • 切换到$val = array_unique($val);,然后
  • UPDATE使用 implode(', ',$val);` 更新表。

注意:您可以节省一些时间并执行 strcmp($orig,$new) 并且只在必要时UPDATE

关于php - 从 mysql 表中的每一行中删除重复单词的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4425260/

相关文章:

php - 在 WordPress 中注册后向用户发送激活链接

C++ 对数字字符串数组进行排序 - 比较函数不起作用

java - 从数据库获取日期并在 Java 中进行比较

php - Bootstrap 4 数据表 Javascript 库 2019

javascript - 将各种类型的对象作为 AJAX post 请求传递?

php - mysql php 日期数学 (dateandtimeA - dateandtimeB)

mysql - 需要从具有公共(public)日期字段的 2 个表中选择所有行

c++ - 在静态常量成员数组中将 char 类型转换为字符串

php - RiakCS S3 PHP 客户端库

mysql - SQL select查询顺序通过添加两个字段表现