【问题标题】:Select data from ms sql with where cluase使用where子句从mysql中选择数据
【发布时间】:2017-07-12 10:22:37
【问题描述】:

我有一个可以运行的 ms MSSQL

 SELECT * FROM dbo.Alrams

结果如下:

但是当我尝试使用 Where 子句进行选择时,出现以下错误。

你有什么建议吗?

更新: 我所有的专栏都是文字

【问题讨论】:

  • SELECT * FROM dbo.Alrams WHERE AlarmId='25888' 去掉括号和双引号
  • 我遇到了操作数类型冲突:文本与 smallint 不兼容

标签: php sql-server sql-server-2008 select


【解决方案1】:

对字符串文字使用单引号。双引号用于标识符,这就是 25888 被视为列名的原因。

当你传递25888 时不带单引号,它将被视为整数类型。整数不能和text比较

SELECT * FROM dbo.Alrams WHERE AlarmId like '25888'

停止使用Text,改用varchar text 可以在以后的版本中删除

【讨论】:

  • 我得到了数据类型 text 和 varchar 在等于运算符中不兼容。
  • @SinaNouri - 使用Like 运营商.. 立即更新检查
  • 你对 $sql="SELECT * FROM dbo.Alarms WHERE AlarmID in ('6954','6042','5664','4788','5678','4844'有什么建议,'6056','5042','6302','13122','4956','6044','6224','5666','4790','4886','5680','5044',' 6058','6304','13124','4958','6226','4792','4888','5046','13126','6440','5998','5708','3932' ,'65035','10714','5700','10774','13070','25622')";
  • @SinaNouri 将值放入临时表中,并使用like 运算符将临时表与dbo.Alrams 连接起来
  • 我将列更改为 varchar,所有由文本引起的问题现在都已解决。
【解决方案2】:

无论如何,不​​要使用双引号来标记文本。在 MSSQL 中,单引号是文本的分隔符。

例如。 SELECT * FROM YOURTABLE WHERE COLUMN = 'abcd';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2013-09-04
    • 2016-04-21
    相关资源
    最近更新 更多