sql select语句给出列错误

时间:2011-03-31 06:52:07

标签: mysql sql mysql-error-1054

当我使用

SELECT order_id from `order` where `order_id`=U687678601

我收到错误

  

错误1054:未知列   'U687678601'在where子句

但是当我输入

SELECT order_id from`order` where `order_id`='U687678601'

它工作得很好..

我正在使用mysql。

我知道这是一个新手问题,但任何人都可以解释为什么会这样,我可以通过编程方式添加引号,通过代码添加引号是个好主意

由于

3 个答案:

答案 0 :(得分:1)

'U687678601'是一个字符串(不是数字),而不是表格中的字段;所以必须引用它。

答案 1 :(得分:0)

Order是一个reserverd关键字,您应该为您的表使用另一个名称。您可以将表名括在引号中,如下所示:

SELECT order_id from `order` where order_id=U687678601

至于引用值,如果值是string类型,则应始终使用引号。如果值是某种数字类型,则不必如此,但几乎所有内容都不会造成任何伤害。

答案 2 :(得分:0)

当我们向SQL查询提供字符串/ varchar类型时,我们必须使用''指定它。 对于非varchar类型,无需提供''。 这就是为什么你写的时候你的查询工作正常

SELECT order_id fromorder where order_id='U687678601'

这表明您的order_id列包含varchar类型。所以从现在开始,您应该将以下语法应用于SQL查询:

SELECT column_name,..... FROM table WHERE column_name = 'varchar_value'

SELECT column_name,..... FROM table WHERE column_name = nonvarchar_value.

并且还考虑到ORDER是保留关键字..所以尝试将表名更改为其他类似order_table或者其他...