当我使用
时SELECT order_id from `order` where `order_id`=U687678601
我收到错误
错误1054:未知列 'U687678601'在where子句
中
但是当我输入
时SELECT order_id from`order` where `order_id`='U687678601'
它工作得很好..
我正在使用mysql。
我知道这是一个新手问题,但任何人都可以解释为什么会这样,我可以通过编程方式添加引号,通过代码添加引号是个好主意
由于
答案 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或者其他...