我有一个包含希伯来语和英语的数据库。不幸的是,创建数据库的人做得很糟糕。我需要选择其中不包含任何希伯来语的行。SQL/MYSQL 有办法做到这一点吗?
问问题
145 次
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 回答