4

问题来了:我已经从mochimedia导入了大约20000个游戏描述到我的数据库中,但是还有很多外国游戏,我不想一一列举。

我想出了这个查询来查找具有非 ASCII 字符的列

SELECT * FROM TABLE WHERE NOT HEX(COLUMN) REGEXP '^([0-7][0-9A-F])*$';

请注意,我在 stackoverflow 上找到了这个解决方案,因为如果涉及到 mysql 查询,我不是专家。

然而,虽然这个查询捕获了一些外国描述,但有时它似乎也会失败并找到完美的描述,所以我正在寻找的是微调这个查询以跳过“好的”那些。

以下是一些“正常”的返回行,这意味着它们不应该被返回:

使用 Game Boy 限制的 Game Boy Jam 游戏。这是一款西方平台游戏,您在其中扮演镇上的治安官。你的任务是抓住这片土地上的所有坏土匪并将他们绳之以法。

还有一个

有这么笨拙的主人,做一只小猫都难!昨天她在公园里丢了很多东西,现在由你来寻找它们!

那天的回忆会很有帮助——你应该记住你上次在哪里看到那个东西并在那里搜索。地图也对你的任务很有用。最后,你可以爬上一棵树,向一只大猫寻求提示——你会再次看到那天发生的所有事件。

但有时仅仅找到丢失的东西是不够的。公园里的一些居民可能已经在自己使用它了——不管是老鼠还是蚂蚁。在这种情况下,你可能不得不给他们带来一些东西来换取丢失的东西——只有这样你才能把它找回来。

最后一个例子

饥饿的蜜蜂是一款独特的趣味游戏。它包括平台游戏,益智游戏,冒险游戏,角色扮演游戏的乐趣。在这个奇幻游戏中,你需要让蜜蜂收集所有的花朵才能赢得比赛。随着关卡的进展,新的挑战将逐渐增加难度。总体而言,它完全融合了乐趣,可以让一个人在游戏中坚持数小时。GOI:评分 4.5 我们的 5

请记住,我不是 mysql 专家,所以我只能猜测问题是什么,我的猜测是某些字符像

' 在 It's 或字符 – 和 :

可能会导致这种情况。

也许有人愿意分享一个优化的查询来解决这个问题?我在这方面花了一些时间,但考虑到我仍然是 php 的新手,绝对不是 REGEXP 和 mysql 查询的专家,如果能在这里得到一些帮助,我可以提高我的知识。请不要以为我会理解你所说的任何东西,如果你只是把它扔给我,那么详细的帮助会很棒。

感谢您花时间阅读本文。

4

1 回答 1

8

如果您只是想查找包含非 ASCII 字符的列,则可以使用以下查询:

SELECT * 
FROM table 
WHERE column != CONVERT(column USING ASCII);
于 2013-09-03T17:47:41.123 回答