选择包含非ASCII字符的行

时间:2013-08-27 16:00:14

标签: php mysql regex

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

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

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

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

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

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

  

使用游戏男孩限制的Game Boy Jam游戏。这是一个西方人   平台游戏,你扮演镇上的治安官。你的使命   是为了捕获土地上的所有坏匪并将它们带到   正义。

还有一个

  

如果你有一个如此笨拙的老板,很难成为一只小猫!昨天   她在公园里丢了很多东西,现在由你来找   他们!

     

那天的回忆可能会有所帮助 - 你应该记得哪里有   你看到那个东西最后并在那里搜索。地图也可以是有用的   你的任务。最后你可以爬上一棵树,然后问一只大猫   提示 - 你将再次看到那天的所有事件。

     

但有时仅仅找到丢失的东西是不够的。一些   公园的居民可能已经在为自己使用它 - 不管它   小鼠或蚂蚁。在这种情况下,你可能需要带些东西   交换丢失的东西 - 只有这样你才能收回它。

和最后一个例子

  饥饿的蜜蜂是一款独特有趣的游戏。它包括一个乐趣   平台游戏,益智游戏,冒险游戏,角色扮演游戏。在这   幻想游戏,人们需要制作蜜蜂来收集所有的花朵   为了赢得一场比赛。随着水平的提高,新的挑战将会如此   逐渐引入韧性。总的来说,它完全融合了   有趣的是一个人坚持游戏几个小​​时。 GOI:评分4.5我们的   5

请记住我不是mysql专家,所以我只能猜出问题是什么,我的猜测就是那些像

这样的人物

'在它或者角色 - 和:

可能会导致这种情况。

也许有人愿意分享优化的查询来解决这个问题?我花了一些时间安静,但鉴于我仍然是一个PHP的新手,并且绝对不是REGEXP和mysql查询的专家,所以在这里获得一些帮助以便我可以提高我的知识。如果你只是把它扔给我,请不要以为我会理解你所说的任何内容,所以详细的帮助会非常棒。

感谢您抽出时间阅读本文。

1 个答案:

答案 0 :(得分:4)

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

SELECT * 从表 WHERE列!= CONVERT(列使用ASCII);