Maria DB中SQL查询的模糊语法错误
我的SQL查询有什么问题?我在PHPMyAdmin中得到这个错误:Maria DB中SQL查询的模糊语法错误,sql,mariadb,Sql,Mariadb,我的SQL查询有什么问题?我在PHPMyAdmin中得到这个错误: INSERT INTO "order" SET `user_id` = 5, `week_id` = 1, `box_settings_id` = '1', `delivery_day` = 'Thursday', `delivery_time` = 'Morning 6am - 9am', `notes` = '', `recipes` = '70, 71, 72, 74'; 而SQL调试器没有显示任何错
INSERT INTO "order" SET `user_id` = 5, `week_id` = 1, `box_settings_id` = '1', `delivery_day` = 'Thursday', `delivery_time` = 'Morning 6am - 9am', `notes` = '', `recipes` = '70, 71, 72, 74';
而SQL调试器没有显示任何错误。问题可能是由于使用了双引号,MySQL和MariaDB与ANSI SQL标准不同。MariaDB和MySQL将使用反勾号,而不是双引号(与字符串文本的单引号同义)。也就是说,您可以调整为非默认的
ANSI
或ANSI_QUOTES
,以支持标识符的双引号:
ANSI_引号将“
”
更改为“”,即标识符引号字符。这可能会破坏旧的MariaDB应用程序,这些应用程序假定“作为字符串引号字符使用”
因此,只需像对列那样在order
表上使用反勾号即可。通常,任何标识符都可以使用反勾号
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"order" SET `user_id` = 5, `week_id` = 1, `box_settings_id` = '1', `delivery_day' at line 1
@好吧,我用这个
插入到人名集合first_name='John',last_name='Doe'代码>,我是否做得不对?forpas认为您错误地混合了插入和更新语法。我也从未见过您使用的这种非标准语法。我必须查一下,福帕斯显然也查到了:-)@ThorstenKettner-forpas是一个卑鄙的人,在他最后一次评论之后我完全忽略了他,他最终删除了叹息。这里的人不必要地刻薄(有时我们是错的。当我看到你的请求时,我完全确定你的语法是错的。然后我看到福帕斯删除了他们的评论,这让我查到了这个语法。是的,如果他们说“对不起,我错了”会更好.我同意。虽然福帕斯写了很多好的答案,也帮助了很多人。有时只是发表评论。有时我们听起来有点苛刻,但我们真的是来帮忙的。@ThorstenKettner我并不介意,语言从来不会伤害我个人,我只是介意那些快速跳转到“-1”的人。都很好。:)甚至更好,删除双引号和反勾号。这里不需要它们。;-)我不知道这件事。我在node.js中使用了它,我将研究如何避免这种回跳。非常感谢。@ThorstenKettner,order
在中是一个保留字。@ThorstenKettner他们不知怎么说,“order”是一个保留关键字。
INSERT INTO `order`
SET `user_id` = 5,
`week_id` = 1,
`box_settings_id` = '1',
`delivery_day` = 'Thursday',
`delivery_time` = 'Morning 6am - 9am',
`notes` = '',
`recipes` = '70, 71, 72, 74';