MySQL 插入查询失败
MySQL Insert query failing
我正在使用 backand.com
进行查询,尝试在用户 table 中创建记录(如果电子邮件尚未使用):
INSERT INTO users (email, firstName, lastName, password)
SELECT * FROM (SELECT '{{email}}', 'test', 'person', '{{password}}') AS tmp
WHERE NOT EXISTS (
SELECT email FROM users WHERE email = '{{email}}'
) LIMIT 1;
它有效,但是当我 运行 它带有参数时:
email: dave@gmail.com
password: test
我收到错误:
发生错误,请重试或联系管理员。错误详细信息:列名称重复 'test'
为什么会失败?没看懂。
谢谢。
问题是您使用 'test'
作为密码,因为您已经将 'test'
作为 firstName。由于您没有提供列别名,因此常量值的字段名称成为常量本身。解决方案:为子选择中的所有 4 个字段提供显式别名:
SELECT '{{email}}' as email, 'test' as firstName, 'person' as lastName, '{{password}}' as pwd
我正在使用 backand.com
进行查询,尝试在用户 table 中创建记录(如果电子邮件尚未使用):
INSERT INTO users (email, firstName, lastName, password)
SELECT * FROM (SELECT '{{email}}', 'test', 'person', '{{password}}') AS tmp
WHERE NOT EXISTS (
SELECT email FROM users WHERE email = '{{email}}'
) LIMIT 1;
它有效,但是当我 运行 它带有参数时:
email: dave@gmail.com
password: test
我收到错误:
发生错误,请重试或联系管理员。错误详细信息:列名称重复 'test'
为什么会失败?没看懂。
谢谢。
问题是您使用 'test'
作为密码,因为您已经将 'test'
作为 firstName。由于您没有提供列别名,因此常量值的字段名称成为常量本身。解决方案:为子选择中的所有 4 个字段提供显式别名:
SELECT '{{email}}' as email, 'test' as firstName, 'person' as lastName, '{{password}}' as pwd