【问题标题】:Firebird queries using chars/varchar使用 chars/varchar 的 Firebird 查询
【发布时间】:2013-01-21 17:26:20
【问题描述】:

我正在为 firebird 使用 SQLManager Lite,到目前为止,还不可能编写一个对 char/varchar 列执行操作的查询。字符集是win1252。

类似的查询

select * from Person where name = 'John' 

尽管记录存在于数据库中,但不会返回任何结果。对数值列的类似查询工作得很好。 我在这里有什么遗漏吗?

此外,此查询在我的应用程序中运行良好。唯一的问题是我也希望能够在 SQLManager Lite 中运行它。附带说明一下,char 和 varchar 列的值不会在同一个 SQLManager Lite 中正确显示。

【问题讨论】:

  • char 列用空格填充到定义的长度(根据 SQL 标准的要求)。 varchar 不是。我几乎找不到任何理由使用char 而不是varchar
  • 即使列定义为 char(1),结果也是一样的。
  • “显示不正确”是什么意思?如果您从表中为名称为“John”的记录选择 *,会显示什么?
  • 试试这个(select * from Person where name like 'John')

标签: char firebird varchar


【解决方案1】:

改为喜欢

select * from Person where name like 'John'

【讨论】:

  • 这背后的技术原因/想法是什么?
  • 我想不出为什么这会起作用而name = 'John' 不会
猜你喜欢
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多