“癌症”行在MYSQL中无法删除?

时间:2018-03-14 21:49:28

标签: mysql wordpress

mysql> select doc, term, item from relevanssi where doc = 26331;
+-------+------------------------+------+
| doc   | term                   | item |
+-------+------------------------+------+
| 26331 | yes                    |    0 |
| 26331 | zero                   |    0 |
| 26331 | ???                    |    0 |
| 26331 | ???                    |    0 |
| 26331 | ????                   |    0 |
+-------+------------------------+------+

我不知道那些“???”是。它们不会出现在查询中:

select doc, term, item from relevanssi where doc = 26331 and term = '???';
Empty set (0.00 sec)

我真的想删除那些“???”行。我怎么做?

2 个答案:

答案 0 :(得分:2)

可能有一些编码错误的字符以?结尾。您可以使用主键(id)删除它们。在您的情况下,它可能很难,因为您没有唯一的主键。

也许您可以创建一个具有自动增量值的列,并使用生成的ID删除它们。

答案 1 :(得分:2)

我有这个问题。这就是我的所作所为。

 select doc, term, HEX(term) hexterm, item from relevanssi where doc = 26331;

这将以十六进制显示您的混乱列值。

然后,当您知道要删除的内容时,您可以执行此操作

 delete from relevanssi where  doc = 26331 AND HEX(term) = 'value from hexterm column'

(对于Relevanssi插件开发者来说,值得回应的是用户的询问。)