[英]MySQL--unknown column in field list
我看不到为什么下面的UPDATE在控制台中能正常工作,但是在我的Java代码中却失败了
MariaDB [testdb]> DESCRIBE datasift_geo;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| datasift_id | bigint(20) unsigned | NO | PRI | NULL | |
| latitude | decimal(17,14) | YES | | NULL | |
| longitude | decimal(17,14) | YES | | NULL | |
| location | varchar(100) | YES | | NULL | |
| coord | point | YES | | NULL | |
+-------------+---------------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
MariaDB [testdb]> SELECT * FROM datasift_geo;
+-------------+-------------------+-------------------+------------+-------+
| datasift_id | latitude | longitude | location | coord |
+-------------+-------------------+-------------------+------------+-------+
| 1601 | 51.45713800000000 | -2.60802800000000 | Bristol UK | NULL |
+-------------+-------------------+-------------------+------------+-------+
MariaDB [testdb]> UPDATE datasift_geo SET coord = GeomFromText('POINT(51.45713800000000 -2.60802800000000)');
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
================
@Test
public void testGeoCoord() throws SQLException {
int id = 1601;
float latitude = 51.45713806152344f;
float longitude = -2.608027935028076f;
String sql = "UPDATE `datasift_geo` SET `datasift_geo`.`coord` = GeomFromText('POINT(" + latitude + " " + longitude + ")') WHERE datasift_id = " + id;
// get database connection, create a PreparedStatement, execute the UPDATE
}
======
执行更新的结果
java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“ datasift_geo.coord”
从您用JAVA代码编写的SQL中,您似乎已经在SQL中提供了tableName.ColumnName
。 您只应提供列名。
String sql = "UPDATE `datasift_geo` SET **`datasift_geo`.`coord`** = GeomFromText('POINT(" + latitude + " " + longitude + ")') WHERE datasift_id = " + id;
语法为: UPDATE TABLE_NAME SET COLUMN_NAME
您的Java代码具有: UPDATE TABLE_NAME SET TABLE_NAME.COLUMN_NAME-错误
也可以从异常中看出
因此,您的Jave Code中的SQL应该如下所示:
String sql = "UPDATE `datasift_geo` SET `coord` = GeomFromText('POINT(" + latitude + " " + longitude + ")') WHERE datasift_id = " + id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.