有一个数据库保存音乐-艺术家,专辑和曲目。每个专辑都有几首曲目,每首曲目在专辑中都有自己的track_number。我尝试执行一个SQL请求,将一个曲目号向上移动(例如,曲目#4将成为曲目#3),同时将另一个曲目号向下移动(前曲目#3应该成为曲目#4)。SQL代码在MySQL Workbench或SQL sandbox中运行时工作良好,但在通过JDBC启动时会导致错误。
SELECT @current_number := track_number, @current_album := album FROM audio_tracks WHERE id = 4;
UPDATE audio_tracks
SET track_number = IF(track_number = @current_number - 1, @current_number, @current_number - 1)
WHERE @current_number > 1
AND track_number IN (@current_number - 1, @current_number)
AND album = @current_album;
public void processCustomRequest(String sql) throws DaoException
{
Statement statement = null;
try
{
statement = connection.createStatement();
statement.execute(sql);
} catch (SQLException ex)
{
throw new DaoException("Failed to execute custom SQL request", ex);
} finally
{
try
{
if (statement != null)
{
statement.close();
}
} catch (SQLException ex)
{
LOGGER.error("Failed to close statement", ex);
}
}
}
我得到的不是预期的转换:您的SQL语法中有一个错误;查看与您的MySQL server版本相对应的手册,以获得使用“update audio_tracks SET track_number=IF(track_number=@current_number-1,@c'at line 1
”附近的正确语法
所以...有什么办法解决这个问题吗?再一次,这是一个沙箱,它显示了我的表的外观以及我的请求是如何完美地工作的。理论上。
尝试打印传递给函数的SQL字符串,并在执行之前检查语法错误。
还要使用Statement.ExecuteUpdate(sql)而不是Statement.Execute(sql)函数。
我在寻找一个特定点周围的距离。 我在我的数据库中有这些项目,带有lat和long。 我想得到指定半径范围内的所有结果。 我就是这样得到的: 现在它给了我一个错误: SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第4行(SQL:select*,(6371*acos(cos(radians(51,3))*cos(radia
问题内容: 在Python的psycopg2中将参数指定为execute()时,如下所示: 我收到此错误: 我究竟做错了什么?看起来psycopg2在查询中添加了单引号,而这些单引号导致了语法错误。 如果我不使用参数,它将正常工作: 问题答案: 我相信这样的参数化语句应与 值 一起使用,而不是与表名(或SQL关键字等)一起使用。因此,您基本上对此感到不走运。 但是,请不要担心,因为该机制旨在防止S
请查看与您的MySQL server版本相对应的手册,以便在
我遇到了这个错误。 com.mysql.jdbc.exceptions.jdbc4。您有一个错误,在您的SQL语法;检查手册,对应于您的MySQL服务器版本的正确的语法使用附近'like='1',不喜欢='0',mealID='17'WHERE mealID='17"在第1行在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在
问题内容: 为SQL Server编写查询时,可以声明和使用如下变量: 在编写用于MS Access的查询时,是否有一种方法可以类似地声明和使用变量? 我需要用另一个查询的结果填充变量,然后使用该值执行插入/更新操作。该查询将从.NET应用程序运行。 问题答案: 在某种方式 但是,您不能使用,在运行查询或在VBA中设置查询时可以手动输入参数。 您可以使用System.Data.OleDb命名空间中
问题内容: 我有一个带下表的sqlite数据库: 两个示例记录如下所示: (大麦的球队输了,安娜的赢了。每场比赛每队都有几名球员。)我想创建一个查询,该查询将返回所有有x个玩家在一个团队而y个玩家在另一个团队的游戏,以及这些游戏的累积结果。游戏。 我知道如何使用perl和csv文件来执行此操作,并且我相信我可以对dbi接口使用相同的方法。但是,我想学习如何仅使用SQL查询来创建此报告。我是SQL的