【问题标题】:Select rows with non english text选择非英文文本的行
【发布时间】:2020-01-23 10:36:54
【问题描述】:

我有这种结构的表:

IdCity      int 
CityName    nvarchar(20)

里面的数据是用俄语写的:

+--------+----------------+
| IdCity |    CityName    |
+--------+----------------+
|      1 |    Абакан      |
|      2 |    Азов        |
|      3 |    Александров |
|      4 |    Алексин     |
+--------+----------------+

我试图让一个简单的视图来检索城市名称 = Азов 的行:

SELECT       IdCity, CityName
FROM            dbo.City
WHERE        (CityName = 'Азов')

虽然记录在表中,但它给了我 null。 例如,当我尝试添加一个英文名称为:cityname = abc 的行并编辑视图以选择 cityname = 'abc' 时,它工作正常。

那么如何让 sql 查询也选择俄罗斯输入?

【问题讨论】:

  • 误入歧途。对不起。
  • 可能您在搜索中没有正确写入文本,或者表中的值可能有一些您错过的不可打印字符。例如,第二个字符不是数字 3。这是一个小提琴演示:dbfiddle.uk/…
  • 请提供SHOW CREATE TABLE和您的连接参数。

标签: mysql sql unicode


【解决方案1】:

可能是编码问题。确保您的 CityName 类型是 VARCHAR,而不是 NVARCHAR。并尝试运行此脚本。

SELECT       IdCity, CityName
FROM            dbo.City
WHERE        (CityName = N'Азов')

【讨论】:

    【解决方案2】:

    问题是从一开始创建数据库时,我必须为数据库选择编码语言,但创建后无法更改!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 2015-10-01
      • 2016-11-07
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多