0

我有一个包含希伯来语和英语的数据库。不幸的是,创建数据库的人做得很糟糕。我需要选择其中不包含任何希伯来语的行。SQL/MYSQL 有办法做到这一点吗?

4

2 回答 2

1

这在很大程度上取决于用于存储数据的字符集。猜测是它是 UTF8 编码的。UTF8 编码有一个对此有用的特殊特性:ASCII 字符(我们在英语中使用的那种)只有一个字节。希伯来字符需要超过一个字节。

所以,你可以试试这个:

where char_length(col) = length(col)

如果您知道字符串总是以字母字符开头,那么类似:

where left(col1, 1) between 'a' and 'z'

也可能工作。

于 2013-09-11T13:42:54.310 回答
0

嗨,由于该列同时包含英语和希伯来语,因此数据类型必须是 nvarchar,

在 SQL SERVER 中,我这样做了

SELECT CASE 
    WHEN CHARINDEX('?',CONVERT(VARCHAR,'2232d@❤##'))>0 THEN 'YES' 
    ELSE 'NO' 
END

这将告诉您一个值是否是希伯来语,如果是英语则为其他。

使用定位代替字符索引

请让我知道这是否有帮助。

我只是给你一个上层的想法。如果您需要任何进一步的帮助,请告诉。

问候

于 2013-09-11T13:39:06.680 回答